我无法设置Webpack来正确缩小我的应用程序。我正在创建分离JS文件,一个vendor.js(库)和main.js(我的应用程序)。我看了看周围的问题,似乎无法找到合适的解决方案。
webpack.config.jsWebpack + angular 1.x + gulp + minifying
var webpack = require("webpack");
var ngAnnotatePlugin = require('ng-annotate-webpack-plugin');
let vendors = [
'angular',
'lodash',
'moment',
'angular-ui-router',
'angular-loading-bar',
'angular-filter',
'angular-animate'
];
module.exports = {
entry: {
app: './halo/app.js',
vendor: vendors
},
output: {
filename: './build/main.js'
},
plugins: [
new webpack.optimize.CommonsChunkPlugin({
name: "vendor",
filename:"./build/vendor.js"
}),
new ngAnnotatePlugin({
add: true
}),
new webpack.optimize.UglifyJsPlugin()
],
module: {
loaders: [
{
test: /\.js$/,
exclude: /(node_modules)/,
loader: 'babel-loader',
query: {
presets: ['es2015']
}
}
]
}
};
我的问题是,不缩小,应用程序工作正常。当我缩小应用程序和供应商时,它似乎不起作用。我得到未知的提供者错误。
我已阅读过有关捣鼓的问题,但这似乎并没有解决我的问题(除非我没有正确地做)。我也正在ngInject的所有正确的地方。
我发现这个配置SNIPPIT把里面optimize.UglifyJsPlugin({})
{
beautify: false, // Don't beautify output
comments: false, // Eliminate comments
// Compression specific options
compress: {
warnings: false,
drop_console: true
},
mangle: {
except: ['$'], // Don't mangle $
screw_ie8 : true, // Don't care about IE8
keep_fnames: true // Don't mangle function names
}
}
任何人都可以提供一些线索对这个好吗?
什么提供商失败?你的控制器是什么样的? – garethb
经过一段时间的调试,控制器很好,ng-annotate正在注入依赖关系,但是我得到一个错误提示符'a'不可用。没有太大的帮助,但我仍然在找出它的过程 –
这个问题似乎与mangle选项。 –