webpack 基于vue package.json的配置
var path = require("path") var webpack = require("webpack") var htmlWebpackPlugin = require("html-webpack-plugin"); var cleanWebpackPlugin = require("clean-webpack-plugin"); module.exports = { entry: "./src/main.js", output: { path: path.resolve(__dirname, "./dist"), /*publicPath: "/dist/",*/ //这是我的开发环境下的; publicPath: "./",//这是我的生产环境下的; filename: "build.js" }, plugins: [ new htmlWebpackPlugin({ title:"MobileMoney", filename:"index.html", template: "index.html", minify: { caseSensitive: false, collapseBooleanAttributes: true, collapseWhitespace: true }, hash: true, cache: true, showErrors: true, chunks: "", chunksSortMode: "auto", excludeChunks: "", xhtml: false }), new cleanWebpackPlugin(["dist"]) ], module: { rules: [ { test: /.css$/, use: [ "vue-style-loader", "css-loader" ], }, { test: /.scss$/, use: [ "vue-style-loader", "css-loader", "sass-loader" ], }, { test: /.sass$/, use: [ "vue-style-loader", "css-loader", "sass-loader?indentedSyntax" ], }, { test: /.vue$/, loader: "vue-loader", options: { loaders: { // Since sass-loader (weirdly) has SCSS as its default parse mode, we map // the "scss" and "sass" values for the lang attribute to the right configs here. // other preprocessors should work out of the box, no loader config like this necessary. "scss": [ "vue-style-loader", "css-loader", "sass-loader" ], "sass": [ "vue-style-loader", "css-loader", "sass-loader?indentedSyntax" ] } // other vue-loader options go here } }, { test: /.js$/, loader: "babel-loader", exclude: /node_modules/ }, { test: /.(eot|svg|ttf|woff|woff2)(?S*)?$/, loader: "file-loader", options: { name: "font/[name].[ext]?[hash]" //这也是为了打包的时候不会太乱; } }, { test: /.(png|jpg|gif|svg)$/, loader: "file-loader", options: { limit: 10000,//小于这个的将以base64处理; name: "imgs/[name].[ext]?[hash]"//这也是为了打包的时候不会太乱; } } ] }, resolve: { alias: { "vue$": "vue/dist/vue.esm.js" }, extensions: ["*", ".js", ".vue", ".json"] }, devServer: { historyApiFallback: true, noInfo: true, overlay: true, port: 9000 //改端口 }, performance: { hints: false }, devtool: "#eval-source-map" } if (process.env.NODE_ENV === "production") { module.exports.devtool = "#source-map" // http://vue-loader.vuejs.org/en/workflow/production.html module.exports.plugins = (module.exports.plugins || []).concat([ new webpack.DefinePlugin({ "process.env": { NODE_ENV: ""production"" } }), new webpack.optimize.UglifyJsPlugin({ sourceMap: true, compress: { warnings: false } }), new webpack.LoaderOptionsPlugin({ minimize: true }) ]) }
2018年4月28号,我做了一些改进会更好:
var path = require("path"); var webpack = require("webpack"); var HtmlWebpackPlugin = require("html-webpack-plugin"); var CleanWebpackPlugin = require("clean-webpack-plugin"); var CopyWebpackPlugin = require("copy-webpack-plugin"); module.exports = { entry: { app: ["babel-polyfill", "./src/main.js"] }, output: { path: path.resolve(__dirname, "./dist"), filename: "build.[hash].js" }, plugins:[ new HtmlWebpackPlugin({ title:"Space时空-项目管理系统", template:"./index.html", inject :true, minify: { //压缩HTML文件 removeComments: true, //移除HTML中的注释 collapseWhitespace: true //删除空白符与换行符 } }), new CleanWebpackPlugin(["dist"]), // 复制 static new CopyWebpackPlugin([ { from: __dirname+"/static", to: __dirname+"/dist/static", ignore: [".*"] } ]) ], module: { rules: [ { test: /.vue$/, loader: "vue-loader", options: { loaders: { // Since sass-loader (weirdly) has SCSS as its default parse mode, we map // the "scss" and "sass" values for the lang attribute to the right configs here. // other preprocessors should work out of the box, no loader config like this necessary. "scss": "vue-style-loader!css-loader!sass-loader", "sass": "vue-style-loader!css-loader!sass-loader?indentedSyntax" } // other vue-loader options go here } }, { test: /.js$/, loader: "babel-loader", exclude: /node_modules/ }, { test: /.css$/, loader: "style-loader!css-loader" }, { test: /.(eot|svg|ttf|woff|woff2)(?S*)?$/, loader: "file-loader", query:{ name:"fonts/[name].[hash:7].[ext]" } }, { test: /.(png|jpe?g|gif|svg)(?S*)?$/, loader: "file-loader", query: { name: "img/[name].[ext]?[hash]" } } ] }, resolve: { alias: { "vue$": "vue/dist/vue.esm.js" } }, devServer: { historyApiFallback: true, noInfo: true, overlay: true, contentBase:"./" }, performance: { hints: false }, devtool: "#eval-source-map" } if (process.env.NODE_ENV === "production") { module.exports.devtool = "#source-map"; // http://vue-loader.vuejs.org/en/workflow/production.html module.exports.plugins = (module.exports.plugins || []).concat([ new webpack.DefinePlugin({ "process.env": { NODE_ENV: ""production"" } }), new webpack.optimize.UglifyJsPlugin({ sourceMap: false, compress: { warnings: false, drop_debugger: true, drop_console: true } }), new webpack.LoaderOptionsPlugin({ minimize: true }) ]) }
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: 极验验证码破解
- 下一篇: angular4 的常用命令