Angular 命令";npm运行构建--“生产”;已退出,出现代码1错误

Angular 命令";npm运行构建--“生产”;已退出,出现代码1错误,angular,npm,asp.net-core,angular-cli,npm-install,Angular,Npm,Asp.net Core,Angular Cli,Npm Install,我正在visual studio 2017中开发一个Asp.Net Core 2和Angular 5项目 当我要发布我的项目时,错误列表窗口中会显示错误“命令“npm run build--prod”退出,代码为1。 我用link创建了项目,一切正常,项目运行和发布正确。 过了一段时间,我不知道到底发生了什么导致项目没有发布 在npm-debug.log文件中 0 info it worked if it ends with ok 1 verbose cli [ 'C:\\Program Fil

我正在visual studio 2017中开发一个Asp.Net Core 2和Angular 5项目

当我要发布我的项目时,错误列表窗口中会显示错误“命令“npm run build--prod”退出,代码为1
我用link创建了项目,一切正常,项目运行和发布正确。
过了一段时间,我不知道到底发生了什么导致项目没有发布

在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 ]

也许在命令行中,NodeJS版本的visualstudio已经过时了。在命令输出中,我们可以看到:

node@v6.10.3


更新
NodeJS

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

  • 要将参数传递到生成命令,请执行以下操作:

    将.csproj文件中的“npm运行构建--prod”更改为“npm运行构建--prod”

  • 打开ClientApp文件夹并使用以下CMD命令更新project angular cli:

    npm安装--保存dev@angular/cli@latest

  • 从以下位置更新visual studio NodeJS和npm:

    工具>选项>项目和解决方案>Web包管理>外部
    网络工具

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


    感谢@Praveen Kumar和@Yerkon收到同样的错误,我的环境:

    .NET Core 2.1 RC-1
    Angular v5.2.4
    NPM v5.7.1
    Node v8.11.2
    
    上面提到的一切都无济于事。 只需转到“\ClientApp”//Angula CLI项目并运行

    npm run build
    

    然后你会看到真正的错误——这意味着你在代码中有一些错误,所以修复用户界面代码,它将生成良好的:)。

    试着运行:ng build“prod”,看看实际的错误是什么

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

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

    错误:命令“npm install”退出,代码为1

    添加环境变量,右键单击此电脑

    • 转到属性
    • 转到“预付款”选项卡
    • 单击环境变量
    • 在用户变量部分,单击新建,输入变量名称“路径”和值
      C:\Users\User\AppData\Roaming\npm
    • 还有一个-在用户变量部分单击新建,输入变量名称“路径”和值
      C:\Program Files\nodejs
    如果已有
    路径
    变量,则可以通过
    编辑该变量并添加新路径(值)分离。

    运行:

    npm运行构建:prod--prod

    查看导致生成失败的实际错误


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

    从输出窗口中的错误中可以看出,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>
    

    如果在netlify上部署,请在站点设置“构建和部署”时使用下面的命令,而不是
    npm运行构建


    CI=npm运行构建

    尝试npm运行构建--prod@Praveen库马尔。我更新了NodeJS,“npm run build--prod”命令没有解决问题。删除bower_组件并运行npm installI从visual studio的“外部WEB工具”部分更新浪费了大量时间到处查看。你有完美的解决方案。谢谢。我也遇到了同样的问题,第一步对我很有效。谢谢,这为我节省了很多时间。VS 2017,15.8.1,.net core 2 Angular Template:仍然需要应用thix修复程序。谢谢不明白为什么微软不会修复它。你把这个“npm安装——保存dev@angular”放在哪里/cli@latest" ? 我已经打开了.angular-cli.json,但没有找到npm安装字符串。在我结束时,当我更新到VS 2019并将csproj更改为“npm运行构建--prod”时,它工作了。令人惊讶的是,当我在VS 2017上运行时,它并没有起到任何作用。这是我真正的问题,依靠VS生成构建并没有真正指出角度框架上的代码问题所在,而角度框架只有在运行ng build--prod时才会弹出。问题是关于“npm运行构建--prod”错误不是真正的错误。在插入任何答案之前,最好仔细阅读问题。.csproj文件中存在“npm运行生成----prod”,与“npm运行生成”无关。您必须修复“npm运行生成--prod”错误。如接受的答案中所述,“npm运行生成--prod”修复了该问题。对我来说不起作用。
    <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>