美文网首页webpack
webpack配置那些事3:webpack4

webpack配置那些事3:webpack4

作者: coder_coder | 来源:发表于2019-04-28 16:13 被阅读0次

偷的,偷偷的,webpack经稳定版本不知道什么时候已更新到4,甚至v5也已经出来了。

更新内容有:

1. 模式(mode)

查看原文|编辑此页
增加了模式区分 (development, production)

  --webpack --mode development/production 进行模式切换

  -- development 开发者模式 打包默认不压缩代码

  -- production  生产者模式 上线时使用,压缩代码。 默认是这个模式

提供 mode 配置选项,告知 webpack 使用相应环境的内置优化。

development模式下,将侧重于功能调试和优化开发体验,包含如下内容:

浏览器调试工具

开发阶段的详细错误日志和提示

快速和优化的增量构建机制

production模式下,将侧重于模块体积优化和线上部署,包含如下内容:

开启所有的优化代码

更小的bundle大小

去除掉只在开发阶段运行的代码

Scope hoisting和Tree-shaking

自动启用uglifyjs对代码进行压缩

2. optimization

移除了commonchunk插件,改用了optimization属性进行更加灵活的配置

ExtractTextWebpackPlugin调整,建议选用新的CSS文件提取插件mini-css-extract-plugin

3. 要安装webpack-cli;
webpack不在单独使用,需要webpack-cli

  -- 全局安装  npm install webpack webpack-cli -g -D

  -- 局部安装  npm install webpack webpack-cli -D

4,. Vue-loader在15.*之后的版本都是 vue-loader的使用都是需要伴生 VueLoaderPlugin的,

 vue-loader was used without the corresponding plugin. Make sure to include VueLoaderPlugin in your webpack config.
. 参考官方文档 https://vue-loader.vuejs.org/migrating.html#a-plugin-is-now-required

const VueLoaderPlugin = require('vue-loader/lib/plugin');
plugins: [

        // make sure to include the plugin for the magic        new VueLoaderPlugin() ],

5. Vue Loader v15 不再默认应用 PostCSS 变换。你需要通过 postcss-loader 使用 PostCSS。
而且postcss-loader跟新到v2以上后,需要新增个文件postcss-config.js才可以,不然css或less文件解析会出错。文件内容如下:
module.exports = {

// parser:'sugarss',

  plugins: {

'autoprefixer': {browsers:'last 5 version'}

}}

其中 SugarSS is whitespace sensitive convenience syntax for CSS, if you intend to use it use the .sss extension instead and a {Function} in postcss.config.js;

如果空格使用不当,编译会报错:
less (1:12) Unnecessary curly bracket

6,babel 升级

https://www.cnblogs.com/chyingp/p/understanding-babel-preset-env.html

但是一直运行出错,识别不了routes里的按需加载用的import
改成以下OK了:
rules: [
        {
          test: /\.js$/,
          include: [

            path.resolve(__dirname, 'js'),

            path.resolve(__dirname, 'node_modules/iview')

          ],

          exclude: [

            path.resolve(__dirname, 'js/lib')

          ],

          use: [{

        loader: 'babel-loader',

        options: {//如果有这个设置则不用再添加.babelrc文件进行配置

            "babelrc": false,// 不采用.babelrc的配置

            "plugins": [

                "dynamic-import-webpack"

            ] }
    }]
}

7, 插件clean-webpack-plugin升级后报错

webpack打包报错:clean-webpack-plugin only accepts an options object
显然是因为版本升级导致的传参不一致,最新版本的参数仅一个对象。
改成以下方式,路径删除:
newCleanWebpackPlugin(['build/*.*'], {

root: __dirname,

verbose:true,

dry:false

  })

ps: 对应的其他插件的版本都要相应更新,使用npm audit fix --force

相关文章

网友评论

    本文标题:webpack配置那些事3:webpack4

    本文链接:https://www.haomeiwen.com/subject/ujgcpqtx.html