webpack的一些有用的命令
webpack --display-modules
在终端显示这些module,另外一个推荐使用
webpack --display-modules --display-reasons
可以把我们在哪里require都显示出来并且用哪些loader处理
webpack -d //debug
webpack -p //执行一些优化将我们的文件压缩
webpack --watch //或者 webpack -w
-w是缩写这个命令使我们不用每次更改文件都去执行webpack,比如我们修改我们的css文件 把字体颜色改为#fff 保存我们直接刷新浏览器就可以了,嘻嘻。
但是我们还是得去刷新浏览器,webpack还提供了热加载,首先安转webpack的服务
npm install webpack-dev-server --save-dev
这里可以配置的参数
devserver配置选项 | 功能描述 |
contentBase | 默认webpack-dev-server会为根文件夹提供本地服务器,如果想为另外一个目录下的文件提供本地服务器,应该在这里设置其所在目录(本例设置到“public"目录) |
port | 设置默认监听端口,如果省略,默认为”8080“ |
inline | 设置为true ,当源文件改变时会自动刷新页面 |
colors | 设置为true ,使终端输出的文件为彩色的 |
historyApiFallback | 在开发单页应用时非常有用,它依赖于HTML5 history API,如果设置为true ,所有的跳转将指向index.html |
module.exports = { devtool:"sourcemap", entry:"./js/entry.js", output:{ filename:"bundle.js", }, module:{ loaders:[ { test:/.css$/, loader:"style!css" }, { test:/.js$/, loader:"babel", exclude:/node_modules/, }, { test:/.vue$/, loader:"vue" } ] }, resolve: { alias: { 'vue$': 'vue/dist/vue.js' } }, babel:{ presets:['es2015','stage-0'], plugins:['transform-runtime'] }, devServer: { port:"8090", inline:true, } }
这里配置8090端口自动刷新页面,在终端使用命令启动服务器
webpack-dev-server --inline
直接在页面打开http://localhost:8090/更改代码你就可以看到实时刷新了,判断我们是线上环境还是线下环境,然后做一些区别:
var debug = process.env.NODE_ENV !== "production"; module.exports = { devtool:debug ? "sourcemap" : null,//线下才生产sourcemap entry:"./js/entry.js", output:{ filename:"bundle.js", }, module:{ loaders:[ { test:/.css$/, loader:"style!css" }, { test:/.js$/, loader:"babel", exclude:/node_modules/, }, { test:/.vue$/, loader:"vue" } ] }, resolve: { alias: { 'vue$': 'vue/dist/vue.js' } }, babel:{ presets:['es2015','stage-0'], plugins:['transform-runtime'] }, devServer: { port:"8090", historyApiFallback: true, inline: true, progress: true, }, plugins:debug ? []:[ new webpack.optimize.DedupePlugin(), new webpack.optimize.OccurrenceOrderPlugin(), new webpack.optimize.UglifyJsPlugin({mangle:false,sourcemap:false}) ], }