命令“npm run build -- --prod”退出并出现代码 1 错误

Posted

技术标签:

【中文标题】命令“npm run build -- --prod”退出并出现代码 1 错误【英文标题】:The command "npm run build -- --prod" exited with code 1 error 【发布时间】:2018-04-04 05:37:18 【问题描述】:

我正在 Visual Studio 2017 中开发 Asp.Net Core 2 和 Angular 5 项目。

当我要发布我的项目时,错误列表窗口中会显示错误“命令“npm run build -- --prod”退出,代码为 1。 我使用Angular CLI in ASP.NET Core 2 Angular template 链接创建了项目,一切正常,项目运行和发布正确。 过了一会儿,我不知道究竟发生了什么导致项目没有发布。

在 npm-debug.log 文件中

0 info it worked if it ends with ok
1 verbose cli [ 'C:\\Program Files\\nodejs\\node.exe',
1 verbose cli   'C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js',
1 verbose cli   'run',
1 verbose cli   'build',
1 verbose cli   '--',
1 verbose cli   '--prod' ]
2 info using npm@3.10.10
3 info using node@v6.10.3
4 verbose stack Error: ENOENT: no such file or directory, open 'C:\Project\JWS\JWSApplication\package.json'
4 verbose stack     at Error (native)
5 verbose cwd C:\Project\JWS\JWSApplication
6 error Windows_NT 10.0.15063
7 error argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "run" "build" "--" "--prod"
8 error node v6.10.3
9 error npm  v3.10.10
10 error path C:\Project\JWS\JWSApplication\package.json
11 error code ENOENT
12 error errno -4058
13 error syscall open
14 error enoent ENOENT: no such file or directory, open 'C:\Project\JWS\JWSApplication\package.json'
15 error enoent ENOENT: no such file or directory, open 'C:\Project\JWS\JWSApplication\package.json'
15 error enoent This is most likely not a problem with npm itself
15 error enoent and is related to npm not being able to find a file.
16 verbose exit [ -4058, true ]

【问题讨论】:

试试 npm run build -- prod @Praveen Kumar。我更新了 NodeJS,但 'npm run build -- prod' 命令没有解决问题。 移除 bower_components 并运行 npm install 【参考方案1】:

只要有错误,就执行以下任一选项

    将参数传递给构建命令:

    在 .csproj 文件中将 'npm run build -- --prod' 更改为 'npm run build --prod'

    使用此 CMD 命令打开 ClientApp 文件夹并更新项目 angular-cli:

    npm install --save-dev @angular/cli@latest

    从以下位置更新 Visual Studio NodeJS 和 npm:

    Tools > Options > Projects and Solutions > Web Package Management > External Web Tools

如果您的环境路径中未安装 NodeJS 和 npm 将 NodeJS 和 npm 文件夹添加到列表顶部,否则将 $(path) 移动到列表顶部

.

感谢@Praveen Kumar 和@Yerkon

【讨论】:

浪费了很多时间到处寻找。你有完美的解决方案。谢谢。 我也遇到了同样的问题,第 1 步对我有用。谢谢,这节省了我很多时间。 VS 2017, 15.8.1, .net core 2 Angular Template:仍然需要应用 thix 修复。谢谢!不明白为什么微软不修复它。 你把这个“npm install --save-dev @angular/cli@latest”放在哪里?我已经打开 .angular-cli.json 但我没有找到 npm 安装字符串。 最后,当我更新到 VS 2019 并将 csproj 更改为 'npm run build --prod' 时,它起作用了。令人惊讶的是,当我在 VS 2017 上运行时,它并没有帮助。【参考方案2】:

遇到同样的错误,我的环境:

.NET Core 2.1 RC-1
Angular v5.2.4
NPM v5.7.1
Node v8.11.2

上面提到的没有任何帮助。 简单地转到“.\ClientApp”//Angula-CLI 项目并运行

npm run build

然后你会看到真正的错误 - 这意味着你在代码中有一些错误,所以修复 Angular UI 代码,它会构建得很好:)。

【讨论】:

这是我真正的问题,依靠 VS 进行构建并没有真正指出代码问题出在 Angular 框架上,只有在运行 ng build --prod 时才会弹出 问题是关于“npm run build -- --prod”错误不是真正的错误。 在插入任何答案之前,最好仔细阅读问题。 'npm run build -- --prod' 存在于 .csproj 文件中,与'npm run build' 无关。您必须修复 'npm run build -- --prod' 错误。【参考方案3】:

运行:

npm run build:prod -- --prod

查看导致构建失败的实际错误。

注意:注意该命令有两次prod

【讨论】:

【参考方案4】:

检查一下,也许你有内存不足的问题

 "build": "node --max-old-space-size=4069 node_modules/@angular/cli/bin/ng build --prod",

【讨论】:

【参考方案5】:

Error: The command "npm install" exited with code 1

添加环境变量,右键此PC

转到属性 转到高级选项卡 点击环境变量 在用户变量部分单击新建,输入变量名称“路径”和值C:\Users\User\AppData\Roaming\npm 还有一个 - 在用户变量部分单击新建,输入变量名称“路径”和值C:\Program Files\nodejs

如果 Path 变量已经存在,那么您可以通过 ; 分隔编辑该变量添加新路径(值)。

【讨论】:

【参考方案6】:

如果在 netlify 上部署,请在站点设置构建和部署时使用以下命令而不是 npm run build

CI= npm run build

【讨论】:

【参考方案7】:

也许在命令行 NodeJS 版本的 Visual Studio 是旧的。在您的命令输出中,我们可以看到:

node@v6.10.3

更新NodeJS

【讨论】:

我从 Visual Studio 的“外部 WEB 工具”部分更新【参考方案8】:

尝试运行: ng build "prod" 并查看实际错误是什么。

【讨论】:

如接受的答案中所述,“npm run build --prod”解决了问题。【参考方案9】:

从您的输出窗口中的错误来看,npm build 命令似乎针对错误的目录,并且找不到 package.json 文件来执行其构建:

11 error code ENOENT
12 error errno -4058
13 error syscall open
14 error enoent ENOENT: **no such file or directory, open** 'C:\Project\JWS\JWSApplication\package.json'
15 error enoent ENOENT: no such file or directory, open 
'C:\Project\JWS\JWSApplication\package.json'
15 error enoent This is most likely not a problem with npm itself
15 error enoent and is related to npm not being able to find a file.
16 verbose exit [ -4058, true ]

我怀疑您的 msbuild 的目标是您的根项目文件夹,而不是您的 package.json 文件所在的 ClientApp/SpaRoot 文件夹。(根据类似经验猜测,因为我无权访问您的 .csproj 以检查您的 msbuild 配置)。

如果您打开 .csproj 文件,您应该会看到 ClientApp/SpaRoot 文件的位置。理想情况下,它将如下所示:

<PropertyGroup>
        <SpaRoot>ClientApp\</SpaRoot>
        <DefaultItemExcludes>$(DefaultItemExcludes);$(SpaRoot)node_modules\**</DefaultItemExcludes>
</PropertyGroup>

根据上述情况,将配置您的ClientApp/SpaRoot文件夹的目录路径,其中包含package.json文件,并在调用npm build时使用部署期间:

<Target Name="PublishRunWebpack" AfterTargets="ComputeFilesToPublish">
        <!-- As part of publishing, ensure the JS resources are freshly built in production mode -->
        <Exec **WorkingDirectory="$(SpaRoot)"** Command="npm install" />
        <Exec **WorkingDirectory="$(SpaRoot)"** Command="npm run build --prod" />
        <Exec **WorkingDirectory="$(SpaRoot)"** Command="npm run build:s-s-r --prod" Condition=" '$(BuildServerSideRenderer)' == 'true' " />
        
        <!-- Include the newly-built files in the publish output -->
        <ItemGroup>
            <DistFiles Include="$(SpaRoot)dist\**; $(SpaRoot)dist-server\**" />
            <DistFiles Include="$(SpaRoot)node_modules\**" Condition="'$(BuildServerSideRenderer)' == 'true'" />
            <ResolvedFileToPublish Include="@(DistFiles->'%(FullPath)')" Exclude="@(ResolvedFileToPublish)">
                <RelativePath>%(DistFiles.Identity)</RelativePath>
                <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
                <ExcludeFromSingleFile>true</ExcludeFromSingleFile>
            </ResolvedFileToPublish>
        </ItemGroup>
    </Target>

【讨论】:

以上是关于命令“npm run build -- --prod”退出并出现代码 1 错误的主要内容,如果未能解决你的问题,请参考以下文章

Linux常用命令(网络命令和关机重启命令)

linux命令的排列替换与别名

Docker学习重点~docker命令:帮助命令镜像命令容器命令常用其他命令

每天一个 Linux 命令网络相关命令(ifconfigroutepingtraceroutenetstatsstelnetrcpscp)

Linux基础命令

网络安全—Linux命令