【问题标题】:The command "npm run build -- --prod" exited with code 1 error命令“npm run build -- --prod”退出并出现代码 1 错误
【发布时间】: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

标签: angular npm asp.net-core angular-cli npm-install


【解决方案1】:

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

  1. 将参数传递给构建命令:

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

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

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

  3. 从以下位置更新 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:ssr --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>
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2021-07-27
            • 2021-07-03
            • 2021-08-08
            • 2022-01-23
            • 2022-10-23
            • 2021-03-03
            • 2018-11-19
            • 1970-01-01
            相关资源
            最近更新 更多