在哪里指定delete-output-path?

11

我有一个使用Node Express创建的项目,通过Angular CLI添加了Angular模块,即 ng new

我不希望Angular输出会清空分发文件夹。

我了解到可以在ng build命令行中加入delete-output-path参数。

是否可以将其放置于angular-cli.json中?

或者应该将其放在tsconfig.json中哪个属性下?

4个回答

16

对于Angular CLI 6+,您需要编辑angular.json文件。您必须在构建选项中设置deleteOutputPath false

"architect": {
    "build": {
      "builder": "@angular-devkit/build-angular:browser",
      "options": {
        "outputPath": "../dist",
        "deleteOutputPath": false,   <--------------------------- put here
        "index": "src/index.html",

4
尝试使用 Angular CLI 7.0.7(和 7.1.4)来设置这个时,我遇到了错误:“数据路径“”不应该有额外属性(deleteOutputPath)”。 - jody tate
在 Angular 7 中是否还有类似的东西? - Janne Harju
@Kabir 我的版本是 Angular cli: 7.3.1 和 Angular 7.2.4。我必须尝试更新并检查它们是否能够再次工作。 - Janne Harju
现在我相信我知道哪里出了问题,有一个 bug。我正在使用这个参数与库一起使用,而我假设你的是应用程序。你的构建器是 "builder": "@angular-devkit/build-angular:browser",而我的是 "builder": "@angular-devkit/build-ng-packagr:build"。 - Janne Harju
2
实际上,@JanneHarju,我想我刚刚回答了自己的问题。他们确实将该选项添加到了ng-packagr中,但它的名称为“deleteDestPath”,并且与“$ schema”一起放在ng-package.json文件中。 - HankScorpio
显示剩余4条评论

4

是的,您可以这样做。您需要将其放置在.angular-cli.json的defaults属性下,如下所示:

{
  "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
  "project": {
    "name": "project-name"
  },
  "apps": [
    {// app property values here}

  ],
  "e2e": {
    "protractor": {
      "config": "./protractor.conf.js"
    }
  },
  "test": {
    "karma": {
      "config": "./karma.conf.js"
    }
  },
  "defaults": {
    "styleExt": "scss",
    "component": {},
    "serve": {
      "port": 3000
    },
    "build": {
      "deleteOutputPath": false
    }
  }
}

如果您想了解更多关于该文件结构的信息,可以访问这里
希望能对您有所帮助 :)

5
有人知道如何在Angular CLI 6+中防止这种情况发生吗? - gadeynebram

3

你需要在package.json文件中的scripts标签下指定标志(flag),如下所示。

   "scripts": {
     "build": "ng build --prod --deleteOutputPath=false"
  },

在上述文件中,构建脚本中的--deleteOutputPath已设置为false。
使用以下命令从您项目的根文件夹运行该脚本。
npm run build 

0
对于Angular 16,这个参数是有效的:"--delete-output-path"。例如:
npx ng build --output-hashing none --aot --delete-output-path=false

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接