【问题标题】:Assets not copied from project to dist folder in Angular 7 library资产未从项目复制到 Angular 7 库中的 dist 文件夹
【发布时间】:2019-06-19 09:55:33
【问题描述】:

我已经通过 Angular CLI v7 生成了新库

ng generate library library-name

之后,我在 src 文件夹中创建了文件夹资产。所以我的文件夹结构是

| - src
| - - lib
| - - - assets

我的问题是,之后

ng build --project=library-name

是我的 dist 文件夹中缺少的资产。所有模块、组件、样式等都导出到 dist 文件夹中。但是,如果我在此层次结构中创建另一个目录,则目录根本不会导出到 dist。

构建后如何强制将资产导出到 dist 文件夹中?

谢谢

【问题讨论】:

    标签: angular npm angular7


    【解决方案1】:

    CLI 目前不支持此功能,您可以在 GitHub 问题中阅读更多信息:https://github.com/angular/angular-cli/issues/11071#issuecomment-395096971

    建议的一种简单解决方法是在构建库后手动cp -r path/to/lib/assets list/path/to/lib 资产。为此,您可以在 package.json 中使用构建后脚本。

    【讨论】:

    • 嗨嬉皮士,感谢您的回复。我会尽快尝试的。基于 dist 构建的包有文件夹 lib/bundles/lib 等。我应该将它复制到哪个 lib 文件夹?
    • 这可能取决于您的图书馆,因此您可能需要尝试不同的位置。首先,我会将它放在 dist 中与库相同的位置(相对)。
    【解决方案2】:

    这个问题已经修复了大约。 2020 年 1 月

    src

    tldr;

    ng-package.json 或等效项中。您可以包含您想要捆绑的内容:

    {
      ...,
      "assets": [
        "./assets",
        "CHANGELOG.md",
        "./styles/**/*.theme.scss"
      ],
      ...
    }
    

    主项目全局

    您还需要确保在您的 angular.json 中包含用于导入打包库的 glob。

    精简示例:

    "projects": { "hello-world": {
        "projectType": "application",
        "architect": { "build": { "options": {
          "assets": [
            ...,
            {
              "glob": "**/*",
              "input": "node_modules/your/library",
              "output": "./assets"
            }
          ]
    } } } } }
    

    【讨论】:

      猜你喜欢
      • 2019-07-23
      • 2018-06-04
      • 2018-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-31
      • 1970-01-01
      • 2022-01-02
      相关资源
      最近更新 更多