webpack 打包速度优化之exclude node_modules

问题描述

使用vue-cli构建的项目,打包速度以及热更新速度慢。在webpack配置exclude:/node_modules,以提高打包速度。图片描述
这里配置的是vue和babel的loader,移除对node_modules文件夹里面的处理。但是里面用到的插件和es6的语法怎么会报错呢?引用的不是node_modules下面具体每个插件打包生成的dist文件夹下面的文件吗?
学艺不精,请各位大神指教。

问题出现的环境背景及自己尝试过哪些方法

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)
module: {

rules: [{
    test: /\.vue$/,
    loader: 'vue-loader',
    exclude: /node_modules/,
    include: [resolve('src')],
    options: vueLoaderConfig
  },
  {
    test: /\.js[x]?$/,
    include: [resolve('src')],
    exclude: /node_modules/,
    loader: 'happypack/loader?id=happybabel'
  },
  {
    test: /\.js$/,
    loader: 'babel-loader?cacheDirectory=true',
    include: [resolve('src'), resolve('test')],
    exclude: /node_modules/
  },
  {
    test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
    loader: 'url-loader',
    include: [resolve('src/assets/images'),resolve('src/assets/fonts')],
    options: {
      limit: 10000,
      name: utils.assetsPath('img/[name].[hash:7].[ext]')
    }
  },
  {
    test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
    loader: 'url-loader',
    include: [resolve('src/assets/fonts')],
    options: {
      limit: 10000,
      name: utils.assetsPath('fonts/[name].[hash:7].[ext]')
    }
  },
  {
    test: /\.less$/,
    loaders: ["style-loader", "css", "less"]
  },
]

},

你期待的结果是什么?实际看到的错误信息又是什么?

阅读 11.9k
2 个回答
引用的不是node_modules下面具体每个插件打包生成的dist文件夹下面的文件吗?

正常确实是这样 但是这个根据包的作者的喜好哦

你用的这个vue-core-image-upload的包我看了下 确实没有编译 dist 直接用的.vue文件
而且报错信息已经很清楚了 ...../xxx.vue
vue-loaderexclude要处理一下

打包以及热更新缓慢是因为之前在每个vue的单文件中都有单独引入less的一个变量文件和less的一个公共样式文件。公共样式文件内容并不少。就造成一旦修改这个样式文件,每个vue文件都要去处理。打包也会很缓慢。最后是采用sass-resources-loader插件处理less文件,这样less变量不用再每个但文件中引用也能全局生效

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题