jsmom-file-upload
Version:
文件上传
99 lines (95 loc) • 2.34 kB
JavaScript
var path = require("path");
var webpack = require("webpack");
const VueLoaderPlugin = require("vue-loader/lib/plugin");
const NODE_ENV = process.env.NODE_ENV;
module.exports = {
entry: NODE_ENV == "development" ? ["./src/dev.js"] : ["./src/prod.js"],
output: {
path: path.resolve(__dirname, "./dist"),
publicPath: "/dist/",
filename: "main.js",
library: "main",
libraryTarget: "umd",
umdNamedDefine: true,
globalObject: "this",
},
externals: {
"js-md5": {
root: "jsMd5",
commonjs: "js-md5",
commonjs2: "js-md5",
amd: "js-md5",
},
axios: "axios",
},
module: {
rules: [
{
test: /\.(css|scss)$/,
use: ["vue-style-loader", "css-loader", "sass-loader"],
},
{
test: /\.vue$/,
loader: "vue-loader",
options: {
loaders: {},
// other vue-loader options go here
},
},
{
test: /\.worker\.js$/,
loader: "worker-loader",
options: { inline: "no-fallback" },
},
{
test: /\.js$/,
loader: "babel-loader",
exclude: /node_modules/,
},
{
test: /\.(png|jpg|gif|svg)$/,
loader: "file-loader",
options: {
name: "[name].[ext]?[hash]",
},
},
],
},
plugins: [
// make sure to include the plugin for the magic
new VueLoaderPlugin(),
],
resolve: {
alias: {
vue$: "vue/dist/vue.esm.js",
},
extensions: ["*", ".js", ".vue", ".json"],
},
devServer: {
historyApiFallback: true,
noInfo: true,
overlay: true,
},
performance: {
hints: false,
},
devtool: "#eval-source-map",
mode: process.env.NODE_ENV === "production" ? "production" : "development",
};
if (process.env.NODE_ENV === "production") {
module.exports.devtool = "#source-map";
module.exports.optimization = {
minimize: true,
};
// 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.LoaderOptionsPlugin({
minimize: true,
}),
]);
}