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

如何在发布Angular库到npm前复制根目录README.md

Angular库发布时包含根目录README.md的解决方案

问题背景

项目结构:

- README.md
- package.json
- angular.json
- projects
  - my-project
    - ng-package.json
    - package.json 

执行命令 ng build my-project --configuration production && npm publish ./dist/my-project 发布到npm时,根目录的README.md未被包含进发布包,且存在以下限制:

  • 仅保留一份README.md,不复制到my-project目录
  • 不能删除根目录README.md,否则GitHub仓库首页无该文件
  • 直接在ng-package.json中配置"assets": ["../../README.md"]会报错Cannot read assets from a location outside of the project root.,此方法无效

可行解决方案

方法1:通过npm脚本复制README到dist目录

在根目录的package.json中添加预处理脚本,构建完成后自动将根目录README复制到发布目录,再执行发布:

修改根目录package.json的scripts节点:

"scripts": {
  "build:lib": "ng build my-project --configuration production",
  "copy:readme": "cp README.md ./dist/my-project/",
  "publish:lib": "npm run build:lib && npm run copy:readme && npm publish ./dist/my-project"
}

之后执行 npm run publish:lib 即可完成发布,既保留根目录的README用于GitHub展示,又能让npm包包含该文件,无需复制到projects目录。

注:Windows系统需将cp替换为copy,或者使用跨平台工具如cpy-cli保证兼容性。

方法2:配置angular.json的项目资产(需验证兼容性)

尝试在angular.json中找到my-project的architect.build.options.assets配置,添加根目录README的复制规则:

"assets": [
  {
    "input": "../../",
    "glob": "README.md",
    "output": "./"
  }
]

若此配置未触发路径限制报错,则构建时会自动将README复制到dist目录;若仍报错,优先使用方法1。

内容的提问来源于stack exchange,提问作者Raphaël Balet

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 16:07:09