webpack.base.config.js
const path = require("path");
const os = require("os");
const webpack = require("webpack");
const ExtractTextPlugin = require("extract-text-webpack-plugin");
const HappyPack = require("happypack");
var happyThreadPool = HappyPack.ThreadPool({ size: os.cpus().length });
function resolve (dir) {
return path.join(__dirname, dir);
}
module.exports = {
entry: {
main: "@/main",
"vender-base": "@/vendors/vendors.base.js",
"vender-exten": "@/vendors/vendors.exten.js"
},
output: {
path: path.resolve(__dirname, "../dist/dist")
},
module: {
rules: [
{
test: /\.vue$/,
loader: "vue-loader",
options: {
loaders: {
css: "vue-style-loader!css-loader",
less: "vue-style-loader!css-loader!less-loader"
},
postLoaders: {
html: "babel-loader"
}
}
},
{
test: /iview\/.*?js$/,
loader: "happypack/loader?id=happybabel",
exclude: /node_modules/
},
{
test: /\.js$/,
loader: "happypack/loader?id=happybabel",
exclude: /node_modules/
},
{
test: /\.js[x]?$/,
include: [resolve("src")],
exclude: /node_modules/,
loader: "happypack/loader?id=happybabel"
},
{
test: /\.css$/,
use: ExtractTextPlugin.extract({
use: ["css-loader?minimize", "autoprefixer-loader"],
fallback: "style-loader"
})
},
{
test: /\.less$/,
use: ExtractTextPlugin.extract({
use: ["css-loader?minimize","autoprefixer-loader", "less-loader"],
fallback: "style-loader"
}),
},
{
test: /\.(gif|jpg|png|woff|svg|eot|ttf)\??.*$/,
loader: "url-loader?limit=1024"
},
{
test: /\.(html|tpl)$/,
loader: "html-loader"
}
]
},
plugins: [
new HappyPack({
id: "happybabel",
loaders: ["babel-loader"],
threadPool: happyThreadPool,
verbose: true
})
],
resolve: {
extensions: [".js", ".vue"],
alias: {
"vue": "vue/dist/vue.esm.js",
"@": resolve("../src"),
}
}
};
webpack.prod.config.js
const webpack = require("webpack");
const HtmlWebpackPlugin = require("html-webpack-plugin");
const ExtractTextPlugin = require("extract-text-webpack-plugin");
const CopyWebpackPlugin = require("copy-webpack-plugin");
const cleanWebpackPlugin = require("clean-webpack-plugin");
const UglifyJsParallelPlugin = require("webpack-uglify-parallel");
const merge = require("webpack-merge");
const webpackBaseConfig = require("./webpack.base.config.js");
const os = require("os");
const fs = require("fs");
const path = require("path");
const package = require("../package.json");
fs.open("./build/env.js", "w", function(err, fd) {
const buf = "export default "production";";
fs.write(fd, buf, 0, buf.length, 0, function(err, written, buffer) {});
});
module.exports = merge(webpackBaseConfig, {
output: {
publicPath: "./", // https://iv...admin
filename: "[name].[hash].js",
chunkFilename: "[name].[hash].chunk.js"
},
plugins: [
new cleanWebpackPlugin(["dist/*"], {
root: path.resolve(__dirname, "../")
}),
new ExtractTextPlugin({
filename: "[name].[hash].css",
allChunks: true
}),
new webpack.optimize.CommonsChunkPlugin({
// name: "vendors",
// filename: "vendors.[hash].js"
name: ["vender-exten", "vender-base"],
minChunks: Infinity
}),
new webpack.DefinePlugin({
"process.env": {
NODE_ENV: ""production""
}
}),
new webpack.optimize.UglifyJsPlugin({
compress: {
warnings: false
}
}),
new HtmlWebpackPlugin({
title: "Watch Dog" + package.version,
favicon: "./ico.png",
filename: "../index.html",
template: "!!ejs-loader!./src/template/index.ejs",
inject: false
})
]
});
debug.log
0 info it worked if it ends with ok
1 verbose cli [ "D:\\softs\\nodejs\\node.exe",
1 verbose cli "D:\\softs\\nodejs\\node_modules\\npm\\bin\\npm-cli.js",
1 verbose cli "run",
1 verbose cli "build" ]
2 info using npm@5.6.0
3 info using node@v8.11.1
4 verbose run-script [ "prebuild", "build", "postbuild" ]
5 info lifecycle watch-dog@1.0.0~prebuild: watch-dog@1.0.0
6 info lifecycle watch-dog@1.0.0~build: watch-dog@1.0.0
7 verbose lifecycle watch-dog@1.0.0~build: unsafe-perm in lifecycle true
8 verbose lifecycle watch-dog@1.0.0~build: PATH: D:\softs\nvm\v8.11.1\node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin;E:\dev\vue\watchDog-framework-web\node_modules\.bin;D:\softs\Python\Python35\Scripts\;D:\softs\Python\Python35\;C:\ProgramData\Oracle\Java\javapath;C:\Program Files (x86)\Common Files\Intel\Shared Files\cpp\bin\Intel64;C:\windows\system32;C:\windows;C:\windows\System32\Wbem;C:\windows\System32\WindowsPowerShell\v1.0\;C:\MinGW\bin;E:\lua5.3;C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\DTS\Binn\;D:\softs\Git\cmd;D:\softs\TortoiseGit\bin;D:\softs\apache-maven-3.5.2\bin;D:\softs\nvm;D:\softs\nodejs;D:\softs\MongoDB\Server\3.6\bin;C:\Users\Administrator\AppData\Local\Yarn\bin;D:\softs\Redis\;C:\Users\Administrator\AppData\Local\Microsoft\WindowsApps;D:\softs\Microsoft VS Code\bin;D:\softs\nvm;D:\softs\nodejs
9 verbose lifecycle watch-dog@1.0.0~build: CWD: E:\dev\vue\watchDog-framework-web
10 silly lifecycle watch-dog@1.0.0~build: Args: [ "/d /s /c",
10 silly lifecycle "webpack --progress --hide-modules --config build/webpack.prod.config.js" ]
11 silly lifecycle watch-dog@1.0.0~build: Returned: code: 2 signal: null
12 info lifecycle watch-dog@1.0.0~build: Failed to exec build script
13 verbose stack Error: watch-dog@1.0.0 build: `webpack --progress --hide-modules --config build/webpack.prod.config.js`
13 verbose stack Exit status 2
13 verbose stack at EventEmitter.<anonymous> (D:\softs\nvm\v8.11.1\node_modules\npm\node_modules\npm-lifecycle\index.js:285:16)
13 verbose stack at emitTwo (events.js:126:13)
13 verbose stack at EventEmitter.emit (events.js:214:7)
13 verbose stack at ChildProcess.<anonymous> (D:\softs\nvm\v8.11.1\node_modules\npm\node_modules\npm-lifecycle\lib\spawn.js:55:14)
13 verbose stack at emitTwo (events.js:126:13)
13 verbose stack at ChildProcess.emit (events.js:214:7)
13 verbose stack at maybeClose (internal/child_process.js:925:16)
13 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:209:5)
14 verbose pkgid watch-dog@1.0.0
15 verbose cwd E:\dev\vue\watchDog-framework-web
16 verbose Windows_NT 10.0.14393
17 verbose argv "D:\\softs\\nodejs\\node.exe" "D:\\softs\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "run" "build"
18 verbose node v8.11.1
19 verbose npm v5.6.0
20 error code ELIFECYCLE
21 error errno 2
22 error watch-dog@1.0.0 build: `webpack --progress --hide-modules --config build/webpack.prod.config.js`
22 error Exit status 2
23 error Failed at the watch-dog@1.0.0 build script.
23 error This is probably not a problem with npm. There is likely additional logging output above.
24 verbose exit [ 2, true ]
console error:
ERROR in 1.2a66533fcf6762182963.chunk.js from UglifyJs
Unexpected token: name (dt) [1.2a66533fcf6762182963.chunk.js:3397,6]
ERROR in 3.2a66533fcf6762182963.chunk.js from UglifyJs
Unexpected token: name (dt) [3.2a66533fcf6762182963.chunk.js:3397,6]
Child html-webpack-plugin for "..\index.html":
1 asset
Child extract-text-webpack-plugin node_modules/extract-text-webpack-plugin/dist node_modules/css-loader/index.js?minimize!node_modules/autoprefixer-loader/index.js!node_modules/iview/dist/styles/iview.css:
Asset Size Chunks Chunk Names
2c2ae068be3b089e0a5b59abb1831550.eot 121 kB [emitted]
24712f6c47821394fba7942fbb52c3b2.ttf 189 kB [emitted]
05acfdb568b3df49ad31355b19495d4a.woff 67.9 kB [emitted]
621bd386841f74e0053cb8e67f8a0604.svg 334 kB [emitted] [big]
npm ERR! code ELIFECYCLE
npm ERR! errno 2
npm ERR! watch-dog@1.0.0 build: `webpack --progress --hide-modules --config build/webpack.prod.config.js`
npm ERR! Exit status 2
npm ERR!
npm ERR! Failed at the watch-dog@1.0.0 build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\Administrator\AppData\Roaming\npm-cache\_logs\2018-04-26T05_14_33_877Z-debug.log
seek a solution