入门篇主要先学学插件的使用,不涉及自定义插件。
首先 插件分为:内置插件和外部插件。
内置插件例如BannerPlugin,可以利用这个来对打包好的文件进行一个权责声明
首先在webpack.config.js的开头要require我们的webpack模块
然后插入插件,向plugins属性插入new实例即可:
然后打包webpack,output生成的bundle.js上面就可以看到我们的权责声明:
另外第三方插件需要下载,例如html-webpack-plugins,很常用
最主要的功能就是自动生成html
第一步安装
$ npm install html-webpack-plugin --save-dev
安装完可以看到package.json的devDependencies属性多出了一行
然后我们把原本自己在public文件夹创建的index.html删除掉,尝试用html-webpack-plugin来自动生成这个html
一样的,在webpack.config.js的开头新增一条require语句:
之后,同样的,在plugins属性new一个实例,不同的是,在这个插件中,我们可以选择配置很多参数,例如可以这样
plugins:[newHtmlWebpackPlugin({title:"hello world"})]
这样,在生成的html中就会有<title>hello world</title>了。然而这并没有什么太大的用处。在实际的项目中,我们常用html-webpack-plugin插件的template功能
这样在output中生成的index.html是以./app/index.html为模板的。
这个插件还有一些参数,例如
filename:默认生成的html为index.html,但是是可以更改的
minify: {
collapseWhitespace: true,
}
minify这个可以将生成html的多余空格全都删掉(看起来就像用记事本打开一样)
hash: true 为了更好的 cache,可以在文件名后加个 hash。
这是最常用的两个插件,另外还有一些常用插件在这里就不研究了……
BannerPlugin:对所有的文件打包后添加一个版权声明
uglifyjs-webpack-plugin: 对JS进行压缩混淆
HtmlWebpackPlugin:可以根据模板自动生成html代码,并自动引用css和js文件
Hot Module Replacement:在每次修改代码保存后,浏览器会自动刷新,实时预览修改后的效果
copy-webpack-plugin:通过Webpack来拷贝文件
extract-text-webpack-plugin:将js文件和css文件分别单独打包,不混在一个文件中
DefinePlugin编译时配置全局变量,这对开发模式和发布模式的构建允许不同的变量时非常有用
optimize-css-assets-webpack-plugin不同组件中重复的css可以快速去重
参考文献: