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})
],
}