ng build --prod在angular-cli.json中没有为指定的outDir提供此类文件或目录错误

时间:2017-09-06 14:24:21

标签: angular angular-cli

当我尝试构建prod( ng build --prod )时,我的角度项目无法构建。请注意 ng build 似乎工作正常。

当我尝试使用--prod选项构建

时出现以下错误
Error: ENOENT: no such file or directory, mkdir 'C:\dev\workspaces\intellij-workspaces\myproject\web\target\frontend'
    at Error (native)
    at Object.fs.mkdirSync (fs.js:922:18)

我已将我的angular-cli outDir设置如下

{
  "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
  "project": {
    "name": "web"
  },
  "apps": [
    {
      "root": "src",
      "outDir": "../../../target/frontend",
      "deployUrl": "myproject-dashboard/",
      "assets": [
        "assets",
        "favicon.ico"
      ],

我的package.json和angular-cli.json文件存在于 的myproject /网络/ SRC /主/前端

所以,理想情况下,基于在angular-cli.json中为outDir设置的相对路径,我希望在 myproject / web 文件夹下创建一个名为target的文件夹,并且我的所有构建输出都是那里有。

请问我是否应该手动创建目标文件夹,还是告诉angular-cli自动创建目标文件夹?

3 个答案:

答案 0 :(得分:2)

您的代码中可能存在其他一些问题,这些问题会被Webpack中的后续异常隐藏,如此票证中所述:

https://github.com/angular/angular-cli/issues/7203

那里发生了什么?编译时构建失败,因此不会创建输出目录,但CLI仍然执行其他步骤,其中一个步骤(通过webpack提取库许可证)要求输出目录存在。该步骤失败并被记录而不是根本原因。

尝试在ng build -prod命令中添加{{1}}选项。这对我来说与你的情况完全相同。

答案 1 :(得分:0)

我也有这个问题,我要解决的是在我的package.json文件中添加它:

"scripts": {
  // ...
  "build": " mkdir dist && ng build --prod"
},

(假设你的dest文件夹是dist)

答案 2 :(得分:0)

我遇到了同样的错误-我试图从dist文件夹运行命令...当我改回到项目的根文件夹,然后工作正常