Webpack4 快速入门

Webpack 4

 webpack 4有很多新的特性。

1. 不再必须有配置文件

2. 产品模式和开发模式 (production and development mode)

3. 覆写默认的入口路径/导出路径

4. 使用Webpack 4 编译ES6代码

4.1. 使用配置文件来加载loader

4.2. 不使用配置文件来加载loader

5. HTML Webpack插件

6. 提取CSS到文件中

7. Webpack 开发服务器

8. 参考资料

1. 不再必须有配置文件

好消息:webpack 4 doesn’t need a configuration file. Webpack 4不再必须需要一个配置文件了!

如果没有配置文件,Webpack 4会默认.src/index.js为入口文件。

2. 产品模式和开发模式 (production and development mode)

webpack4 引入了产品模式和开发模式的概念。

只需要在打包命令中加入参数,例如:

$ webpack --mode development

$ webpack --mode production

webpack就会以不同模式打包文件。

产品模式提供了开箱即用的一些优化配置,包括minification, scope hoisting, tree-shaking以及更多。

3. 覆写默认的入口路径/导出路径

直接上代码:

"scripts": {"dev":"webpack --mode development ./foo/src/js/index.js --output ./foo/main.js","build":"webpack --mode production ./foo/src/js/index.js --output ./foo/main.js"}

4. 使用Webpack 4 编译ES6代码

4.1. 使用配置文件来加载loader

Webpack的loader之一babel-loader可以完成这个工作。

使用babel-loader之前需要安装一下依赖:

babel-core

babel-loader

babel-preset-env

npmibabel-core babel-loader babel-preset-env --save-dev

接下来通过新建一个新文件.babelrc来配置Babel。

在文件中输入以下内容:

{"presets": ["env"]}

4.2. 不使用配置文件来加载loader

"scripts": {"dev":"webpack --mode development --module-bind js=babel-loader","build":"webpack --mode production --module-bind js=babel-loader"}

--module-bind允许你在命令行中声明要加载的loader

5. HTML Webpack插件

Webpack使用两个额外组件来处理HTML:html-webpack-plugin 和 html-loader。

加载依赖项:

npm i html-webpack-plugin html-loader --save-dev

配置文件:

const HtmlWebPackPlugin = require("html-webpack-plugin");module.exports = {  module:{    rules:[      {        test:/.js$/,        exclude:/node_modules/,        use:{          loader:"babel-loader"}      },      {        test:/.html$/,        use:[          {            loader:"html-loader",            options:{ minimize: true }          }        ]      }    ]  },  plugins:[    new HtmlWebPackPlugin({      template:"./src/index.html",      filename:"./index.html"})  ]};

不用手动将JavaScript文件插入到HTML文件中。打包后的文件将会被自动插入。

6. 提取CSS到文件中

需要用到以下组件:

mini-css-extract-plugin

css-loader

安装依赖:

npm i mini-css-extract-plugin css-loader --save-dev

配置文件:

const HtmlWebPackPlugin = require("html-webpack-plugin");const MiniCssExtractPlugin = require("mini-css-extract-plugin");module.exports = {  module:{    rules:[      {        test:/.js$/,        exclude:/node_modules/,        use:{          loader:"babel-loader"}      },      {        test:/.html$/,        use:[          {            loader:"html-loader",            options:{ minimize: true }          }        ]      },      {        test:/.css$/,        use:[MiniCssExtractPlugin.loader,"css-loader"]      }    ]  },  plugins:[    new HtmlWebPackPlugin({      template:"./src/index.html",      filename:"./index.html"}),    new MiniCssExtractPlugin({      filename:"[name].css",      chunkFilename:"[id].css"})  ]};

7. Webpack 开发服务器

在设置好webpack dev server之后。你的应用将在浏览器中自动启动。

在每次修改文件后,浏览器窗口也会自动刷新。

安装依赖项

npm i webpack-dev-server --save-dev

package.json中的配置代码

"scripts": {"start":"webpack-dev-server --mode development --open","build":"webpack --mode production"}

你可能感兴趣的:(Webpack4 快速入门)