vue.config.js 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. // vue.config.js 配置说明
  2. //官方vue.config.js 参考文档 https://cli.vuejs.org/zh/config/#css-loaderoptions
  3. const MiniCssExtractPlugin = require('mini-css-extract-plugin')
  4. const cdn = {
  5. js: [
  6. 'https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js',
  7. 'https://cdn.jsdelivr.net/npm/crypto-js@4.0.0/crypto-js.js',
  8. 'https://unpkg.com/vue-router@3.0.0/dist/vue-router.js',
  9. ],
  10. }
  11. module.exports = {
  12. //配置线上域名&地址
  13. publicPath: process.env.env_config === 'prod' ? 'https://h5-cms-vue.ijolijoli.com/agreement/dist' :
  14. process.env.env_config === 'test' ? '/agreement/dist' : '/dist/',
  15. // 设置跨域
  16. crossorigin: 'anonymous',
  17. /**
  18. * 如果你不需要生产环境的 source map,可以将其设置为 false 以加速生产环境构建。
  19. * map文件的作用在于:项目打包后,代码都是经过压缩加密的,如果运行时报错,输出的错误信息无法准确得知是哪里的代码报错。
  20. * 有了map就可以像未加密的代码一样,准确的输出是哪一行哪一列有错。
  21. * */
  22. productionSourceMap: false,
  23. transpileDependencies: ['yd-ui', 'swiper', 'dom7'],
  24. // 它支持webPack-dev-server的所有选项
  25. devServer: {
  26. host: '0.0.0.0',
  27. port: 8082, // 端口号
  28. https: false, // https:{type:Boolean}
  29. open: false, //配置自动启动浏览器
  30. proxy: '', // 配置跨域处理
  31. },
  32. //这是一个不进行任何 schema 验证的对象,因此它可以用来传递任何第三方插件选项
  33. pluginOptions: {
  34. // 设置线上部署路径,发布时请修改 eg: /data2/wwwroot/web/vue/vapps/vip
  35. onlineRootPath: '__ONLINE_ROOT_PATH__',
  36. testRootPath: '__TEST_ROOT_PATH__',
  37. },
  38. configureWebpack: {
  39. externals: {
  40. vue: 'Vue',
  41. 'vue-router': 'VueRouter',
  42. 'crypto-js': 'CryptoJS',
  43. axios: 'axios',
  44. },
  45. // 这是七牛找不到资源时的紧急处理方法,通过修改hash位数修改编译后的资源文件名
  46. // output: {
  47. // filename: `js/[name].[hash:6].js`,
  48. // chunkFilename: `js/[name].[hash:6].js`
  49. // },
  50. // plugins: [
  51. // new MiniCssExtractPlugin({
  52. // filename: `css/[name].[hash:6].css`,
  53. // chunkFilename: `css/[name].[hash:6].css`
  54. // })
  55. // ]
  56. },
  57. chainWebpack: (config) => {
  58. config.plugin('html').tap((options) => {
  59. options[0].cdn = cdn
  60. return options
  61. })
  62. },
  63. }