Webpack Uglify 插件 returns "Killed" Ubuntu
Webpack Uglify plugin returns "Killed" on Ubuntu
在我的远程服务器 (Ubuntu 14.04 x64) 上,每当我尝试丑化我的包时,过程都简单 returns "Killed"。当我不丑陋时,它就好了。
有人 运行 参与其中吗?当我在本地 Mac 上执行时,没问题(虽然我刚刚测试了它并且花了 1.4 分钟)。
这是我的webpack.config:
var webpack = require('webpack');
function makeConfig(opts) {
var config = {
entry: {
app: ['./public/scripts/main.js'],
vendor: ['lodash', 'react', 'react/lib/ReactCSSTransitionGroup', 'react-router', 'reqwest', 'd3']
},
stats: {
colors: true,
reasons: true
},
output: {
devtool: (opts.env === 'dev' ? '#eval-source-map' : ''),
path: 'dist/scripts',
filename: '[name].bundle.js'
},
plugins: [
new webpack.DefinePlugin({
ENV: opts.env
}),
new webpack.optimize.CommonsChunkPlugin('vendor.bundle.js')
],
module: {
loaders: [
{ test: /\.jsx?$/, loader: 'jsx-loader' }
]
}
};
if(opts.env === 'prod') {
config.plugins.push(
new webpack.optimize.UglifyJsPlugin(),
new webpack.optimize.DedupePlugin()
);
}
return config;
}
module.exports = makeConfig;
它被 gulp 调用,如下所示:
gulp.task('webpack', ['cleanScripts'], function(done) {
webpack(webpackConfig, function(err, stats) {
if(err) {
console.error(err);
throw new gutil.PluginError('webpack', err);
}
else {
done();
}
});
});
我在 digital ocean vm 上遇到了同样的问题,结果是没有配置交换,所以它 运行 内存不足。
正如@barbuza 所说,这是一个内存问题。我也在使用只有 512 MB RAM 的 Digital Ocean VPS(是的,我很便宜)。这对于 webpack 的 uglify 插件来说还不够。在服务器上添加 2GB 的交换 space 解决了这个问题。我按照这篇文章进行了设置:https://www.digitalocean.com/community/tutorials/how-to-add-swap-on-ubuntu-14-04
我在使用 Digital Ocean VPS 时发生了同样的事情,如上所述 - 这是因为构建需要为您的机器占用大量 RAM,所以它是 "out of memory usage"。
要解决这个问题,您可以在通过 ---max_old_space_size
选项编译文件时最大限度地减少 RAM 使用,这是一个高级用法示例
node --max_old_space_size=1096 node_modules/webpack/.bin/webpack.js
当然你可以选择任何大小,你也可以用webpack-dev-server做同样的事情。并且你不需要添加交换 space 直到它真正需要用于其他目的,比如你 运行 这个命令只编译一次 bundle.js 文件。
您还可以 运行 在本地计算机上构建 ng,然后像这样将 dist 文件夹复制到远程:
scp -r path/to/local/folder user@x.x.x.x:/path/to/remote/folder
在我的远程服务器 (Ubuntu 14.04 x64) 上,每当我尝试丑化我的包时,过程都简单 returns "Killed"。当我不丑陋时,它就好了。
有人 运行 参与其中吗?当我在本地 Mac 上执行时,没问题(虽然我刚刚测试了它并且花了 1.4 分钟)。
这是我的webpack.config:
var webpack = require('webpack');
function makeConfig(opts) {
var config = {
entry: {
app: ['./public/scripts/main.js'],
vendor: ['lodash', 'react', 'react/lib/ReactCSSTransitionGroup', 'react-router', 'reqwest', 'd3']
},
stats: {
colors: true,
reasons: true
},
output: {
devtool: (opts.env === 'dev' ? '#eval-source-map' : ''),
path: 'dist/scripts',
filename: '[name].bundle.js'
},
plugins: [
new webpack.DefinePlugin({
ENV: opts.env
}),
new webpack.optimize.CommonsChunkPlugin('vendor.bundle.js')
],
module: {
loaders: [
{ test: /\.jsx?$/, loader: 'jsx-loader' }
]
}
};
if(opts.env === 'prod') {
config.plugins.push(
new webpack.optimize.UglifyJsPlugin(),
new webpack.optimize.DedupePlugin()
);
}
return config;
}
module.exports = makeConfig;
它被 gulp 调用,如下所示:
gulp.task('webpack', ['cleanScripts'], function(done) {
webpack(webpackConfig, function(err, stats) {
if(err) {
console.error(err);
throw new gutil.PluginError('webpack', err);
}
else {
done();
}
});
});
我在 digital ocean vm 上遇到了同样的问题,结果是没有配置交换,所以它 运行 内存不足。
正如@barbuza 所说,这是一个内存问题。我也在使用只有 512 MB RAM 的 Digital Ocean VPS(是的,我很便宜)。这对于 webpack 的 uglify 插件来说还不够。在服务器上添加 2GB 的交换 space 解决了这个问题。我按照这篇文章进行了设置:https://www.digitalocean.com/community/tutorials/how-to-add-swap-on-ubuntu-14-04
我在使用 Digital Ocean VPS 时发生了同样的事情,如上所述 - 这是因为构建需要为您的机器占用大量 RAM,所以它是 "out of memory usage"。
要解决这个问题,您可以在通过 ---max_old_space_size
选项编译文件时最大限度地减少 RAM 使用,这是一个高级用法示例
node --max_old_space_size=1096 node_modules/webpack/.bin/webpack.js
当然你可以选择任何大小,你也可以用webpack-dev-server做同样的事情。并且你不需要添加交换 space 直到它真正需要用于其他目的,比如你 运行 这个命令只编译一次 bundle.js 文件。
您还可以 运行 在本地计算机上构建 ng,然后像这样将 dist 文件夹复制到远程:
scp -r path/to/local/folder user@x.x.x.x:/path/to/remote/folder