答案 0 :(得分:9)
从此comment开始:
我认为这是一个记忆问题。 Linux会杀死进程 内存不足。看到 http://stackoverflow.com/questions/30747314/webpack-uglify-plugin-returns-killed-on-ubuntu
答案 1 :(得分:6)
这确实是内存问题。如果您无法添加额外的物理内存,您可以创建一个交换文件来添加额外的 RAM 内存。
Severity Code Description Project File Line Suppression State
Error Copying file node_modules\@angular-devkit\build-optimizer\node_modules\typescript\loc\lcl\CHS\TypeScriptLanguageService\Microsoft.CodeAnalysis.TypeScript.EditorFeatures.dll.lcl
to
C:\Users\username\AppData\Local\Temp\WebSitePublish\client-1522486671\obj\Debug\Package\PackageTmp\node_modules\@angular-devkit\build-optimizer\node_modules\typescript\loc\lcl\CHS\TypeScriptLanguageService\Microsoft.CodeAnalysis.TypeScript.EditorFeatures.dll.lcl
failed. Could not find a part of the path
'C:\Users\username\AppData\Local\Temp\WebSitePublish\client-1522486671\obj\Debug\Package\PackageTmp\node_modules\@angular-devkit\build-optimizer\node_modules\typescript\loc\lcl\CHS\TypeScriptLanguageService\Microsoft.CodeAnalysis.TypeScript.EditorFeatures.dll.lcl'.
如果您重新启动,将不会重新创建交换文件。如果您希望交换文件是永久性的,请使用 // Create a swapfile
sudo fallocate -l 4G /swapfile
// Set up the swapspace
sudo mkswap /swapfile
// enable swapfile
sudo swapon /swapfile
编辑 stab 文件并向其中添加以下行:
sudo nano fstab
答案 2 :(得分:0)
Linux的内存不足时,它将终止进程,这意味着您的进程消耗的内存超过了可用内存。要调节Node的内存使用量,您可以使用:
node --max_old_space_size=1096 ./node_modules/@angular/cli/bin/ng build --prod
1096可以替换为剩下的内存
另一种解决方案是添加或释放内存。例如,可以通过添加交换来完成
答案 3 :(得分:0)
我也在 Linux服务器上遇到此问题。 这是内存问题。 Linux服务器不足以容纳webpack的uglify插件, 因此,在服务器上添加额外的内存空间解决了该问题
答案 4 :(得分:0)
对于 Centos 7
补充库尔特的答案。
在 Centos 7
中创建交换文件不适用于建议的命令。
fallocate
命令在 Centos 7
中无法正常工作并在调用 swapon
时产生以下错误:
swapon: /swapfile: swapon failed: Invalid argument
另外建议您在启用交换文件之前将文件的权限更改为 0600。 因此,最终您可以执行以下操作:
sudo dd if=/dev/zero of=/swapfile count=4096 bs=1MiB
sudo mkswap /swapfile
sudo chmod 0600 /swapfile
sudo swapon /swapfile