标签:app 一个 ntb base64 最新版 exclude one none ash
1 //全局安装 2 npm install -g webpack 3 //安装到项目目录 4 npm install webpack --save-dev
1 const webpack = require(‘webpack‘); 2 const HtmlWebpackPlugin = require(‘html-webpack-plugin‘); //html解析导入 3 const ExtractTextPlugin = require(‘extract-text-webpack-plugin‘); 4 5 // __dirname 是 node.js 中的一个全局变量,它指向当前执行脚本所在的目录 6 module.exports = { 7 entry: __dirname + "/app/main.js", //唯一入口文件 8 output: { 9 path: __dirname + "/build", //打包后输出的文件路径 10 filename: "bundle-[hash].js" //打包后输出的文件名 11 }, 12 devtool: ‘none‘, 13 //在package.json中的scripts对象中添加webpack-dev-server命令可开启本地服务器 14 devServer: { 15 contentBase: "./public", //本地服务器所加载的页面所在的目录 16 //在开发单页应用时,它依赖于HTML5 history API,如果设置为true,所有的跳转将指向index.html,也就是不跳转 17 historyApiFallback: true, 18 inline: true, //当源文件改变时会自动刷新页面 19 hot: true //热加载 20 }, 21 //配置loader 22 //模块的解析规则 23 module: { 24 rules: [ 25 //js 匹配所有的js,用babel-loader转译 排除掉node_modules 26 { 27 test: /(\.jsx|\.js)$/, 28 use: { 29 loader: "babel-loader" 30 }, 31 exclude: /node_modules/ 32 }, 33 //css use时如果多个loader,要从右往左写 34 { 35 test:/\.css$/, 36 use:[ 37 { 38 loader: "style-loader" 39 },{ 40 loader: "css-loader" 41 } 42 ] 43 }, 44 //less 45 { 46 test:/\.less$/, 47 use:[ 48 { 49 loader: "style-loader" 50 },{ 51 loader: "css-loader" 52 },{ 53 loader: "less-loader" 54 } 55 ] 56 }, 57 //配置图片 只在10000字节以下转化base64,其他情况下输出原图片 58 { 59 test: /\.(png|jpe?g|gif|svg|cur)(\?.*)?$/, 60 loader: ‘url-loader‘, 61 options: { 62 limit: 10000, 63 name: utils.assetsPath(‘img/[name].[hash:7].[ext]‘) 64 } 65 } 66 ] 67 } 68 }, 69 plugins: [ 70 //通过这个插件打包后会在js文件中增加一段注释:/*! 版权所有,翻版必究 */ 71 new webpack.BannerPlugin(‘版权所有,翻版必究‘), 72 //HtmlWebpackPlugin:依据一个简单的index.html模板,生成一个自动引用你打包后的JS文件的新index.html 73 //new 一个这个插件的实例,并传入相关的参数,自动插入到dist目录中 74 new HtmlWebpackPlugin({ 75 //使用的模板 76 template: __dirname + "/app/index.tmpl.html" 77 }), 78 //Hot Module Replacement(HMR)热加载插件:允许你在修改组件代码后,自动刷新实时预览修改后的效果。 79 //在webpack中实现HMR也很简单,只需要做两项配置 80 //在webpack配置文件中添加HMR插件; 81 //在Webpack 的 devServer中添加“hot”参数为true; 82 new webpack.HotModuleReplacementPlugin(), 83 new webpack.optimize.OccurrenceOrderPlugin(), 84 new webpack.optimize.UglifyJsPlugin(), 85 new ExtractTextPlugin("style.css") 86 ] 87 };
标签:app 一个 ntb base64 最新版 exclude one none ash
原文地址:https://www.cnblogs.com/ainyi/p/9361824.html