将webpack1升级为webpack2的一些总结

/**
* webpack2配置
*/

var
webpack = require('webpack'); var path = require('path'); var HtmlWebpackPlugin = require('html-webpack-plugin'); var OpenBrowserPlugin = require('open-browser-webpack-plugin'); module.exports = { devServer: { historyApiFallback: true, contentBase: "./", quiet: false, //控制台中不输出打包的信息 noInfo: false, hot: true, //开启热点 inline: true, //开启页面自动刷新 lazy: false, //不启动懒加载 //progress: true, //显示打包的进度,webpack2中没有该配置项 watchOptions: { aggregateTimeout: 300 }, host: 'localhost', port: 8088, //设置端口号 //代理其实很简单的,只要配置这个参数就可以了 proxy: { } }, entry: [ // 'webpack/hot/dev-server', // 'webpack-dev-server/client?http://localhost:8088',webpack2注释 path.resolve(__dirname, 'src/index.js') ], output: { path: path.join(__dirname, "dist/"), filename: 'bundle.js', publicPath: '/dist/' }, module: { rules: [ { test: /\.js[x]?$/, exclude: /node_moudle/, include: path.join(__dirname, './src'), loader: 'babel-loader', options: { presets: [ "es2015", "react", "stage-2" ], "plugins": [ ["import", { "libraryName": "antd", "style": "css" }] ] } }, { test: /\.css$/, use: ['style-loader','css-loader'] }, { test: /\.(png|jpg)$/, loader: 'url-loader', options: { limit: 8129 } }, { test: /\.scss$/, use: ['style-loader','css-loader','sass-loader'] }, ] }, plugins: [ new HtmlWebpackPlugin({ title: 'webpack-demos', filename: 'dev.html', template: 'index.html', inject: 'body', minify: false, hash: false, cache: false, showErrors: false }), new OpenBrowserPlugin({ url: 'http://localhost:8088' }), new webpack.DefinePlugin({ }), new webpack.HotModuleReplacementPlugin() ], resolve: { extensions: [".js", ".json"], modules: ['node_modules'] }, devtool: 'source-map' }

 

将webpack1升级为webpack2的时候,总结:

  • webpack和webpack-dev-server的版本需要更新到@2.x版本
  • 2的devServer中配置参数有变动,例如progress被取消
  • entry中不需要
    'webpack/hot/dev-server'和'webpack-dev-server/client?http://localhost:8088'
  • module.loaders升级为module.rules(虽然前者依旧被保留可用,但是此处遵循2的新特性规范)
  • 原query字段被取消,现使用options,并且使用options的地方需要配合使用loader,没有options的地方使用use
  • 原先的加载器不强求些“-loader”,现在需要强制加上
  • 原先的加载器可以通过“!”级连,现在不可以
  • 原先加载器后可以使用“?***”,现在取消,统一使用options
  • 原先的resolve.extensions[0]可以为空,现不可以
  • resolve.modulesDirectories字段改为resolve.modules字段

 

贴上相同需求下的webpack1的配置

/**
* webpack1配置
*/
var
webpack = require('webpack'); var path = require('path'); var HtmlWebpackPlugin = require('html-webpack-plugin'); var OpenBrowserPlugin = require('open-browser-webpack-plugin'); module.exports = { devServer: { historyApiFallback: true, contentBase: "./", quiet: false, //控制台中不输出打包的信息 noInfo: false, hot: true, //开启热点 inline: true, //开启页面自动刷新 lazy: false, //不启动懒加载 progress: true, //显示打包的进度 watchOptions: { aggregateTimeout: 300 }, host: 'localhost', port: 8088, //设置端口号 //代理其实很简单的,只要配置这个参数就可以了 proxy: { } }, entry: [ 'webpack/hot/dev-server', 'webpack-dev-server/client?http://localhost:8088', path.resolve(__dirname, 'src/index.js') ], output: { path: path.join(__dirname, "dist/"), filename: 'bundle.js', publicPath: '/dist/' }, module: { loaders: [ { test: /\.js[x]?$/, exclude: /node_moudle/, include: path.join(__dirname, './src'), loader: 'babel-loader', query: { presets: [ 'es2015', 'react', 'stage-2' ] } }, { test: /\.css$/, loader: 'style-loader!css-loader' }, { test: /\.(png|jpg)$/, loader: 'url-loader', query: { limit: 8129 } }, { test: /\.scss$/, loader: 'style-loader!css-loader!sass-loader' }, ] }, plugins: [ new HtmlWebpackPlugin({ title: 'webpack-demos', filename: 'dev.html', template: 'index.html', inject: 'body', minify: false, hash: false, cache: false, showErrors: false }), new OpenBrowserPlugin({ url: 'http://localhost:8088' }), new webpack.DefinePlugin({ }), new webpack.HotModuleReplacementPlugin() ], resolve: { extensions: ['', '.web.js', '.js', '.jsx', '.json'], root: [ path.resolve('./src') ], modulesDirectories: ['node_modules'] }, devtool: 'source-map' }

 

按需加载的配置

npm install babel-plugin-import --save-dev

"plugins": [ ["import", { "libraryName": "antd", "style": "css" }] ] // style: true的时候加载less

 

转载于:https://www.cnblogs.com/waiting-h/p/6908565.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值