You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows10下Angular-CLI执行npm run packagr不打包assets/styles文件夹问题

解决Angular-CLI + packagr打包时src/assets/styles未复制到dist的问题

我之前也碰到过一模一样的困扰——Angular CLI的assets配置经常不会直接作用于packagr的库打包流程,毕竟packagr是专门处理Angular库的工具,有自己的配置逻辑。给你几个亲测有效的解决方案:

1. 配置ng-package.json的assets字段(推荐方案)

packagr的核心配置文件是ng-package.json,它不会自动继承angular-cli.json(或angular.json)的assets设置,所以需要在这里单独指定要打包的资源。打开项目根目录下的ng-package.json,在lib节点里添加assets数组:

{
  "$schema": "./node_modules/ng-packagr/ng-package.schema.json",
  "lib": {
    "entryFile": "src/public-api.ts",
    "assets": [
      "./src/assets/styles/**/*"
    ]
  }
}
  • 路径是相对于ng-package.json的位置,如果你项目的目录结构是根目录下有src文件夹,这个路径就没问题;
  • **/*表示复制styles文件夹下的所有文件和子目录;
  • 执行npm run packagr后,styles文件夹会被打包到dist/[你的库名称]/assets/styles目录下(packagr默认会把库内容放在dist下的单独文件夹里)。

2. 调整Angular CLI的配置(辅助验证)

如果你的Angular版本是6+,配置文件已经从angular-cli.json改成了angular.json,可以在对应的build配置里补充assets规则,确保本地开发和打包的一致性:

"projects": {
  "your-library-name": {
    "architect": {
      "build": {
        "options": {
          "assets": [
            "src/favicon.ico",
            "src/assets",
            {
              "glob": "**/*",
              "input": "src/assets/styles",
              "output": "/assets/styles/"
            }
          ]
        }
      }
    }
  }
}

不过要注意:packagr打包时主要还是依赖ng-package.json的配置,这个步骤更多是为了让本地build也能正确复制styles文件。

3. 手动复制脚本(应急方案)

如果上面的配置都没生效,可以用Windows的xcopy命令写一个post打包脚本,在packagr执行完成后自动复制文件。修改package.json的scripts:

"scripts": {
  "packagr": "ng-packagr -p ng-package.json",
  "postpackagr": "xcopy /E /I /Y src\\assets\\styles dist\\your-library-name\\assets\\styles"
}
  • /E:复制所有子目录(包括空目录);
  • /I:如果目标目录不存在,自动创建;
  • /Y:覆盖现有文件时不弹出提示;
  • 记得把your-library-name替换成你实际的库名称(就是dist下生成的文件夹名)。

额外注意点

  • 执行打包后,不要只看dist根目录,要进入dist下的库文件夹里检查assets/styles是否存在;
  • 如果路径还是有问题,可以打印一下当前路径,或者调整ng-package.json里assets的相对路径,比如改成../src/assets/styles/**/*(根据ng-package.json的位置灵活调整)。

内容的提问来源于stack exchange,提问作者Mark Hill

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:07:31