如何在 angular 6 中指定已发布 package.json 与库发布?

How to specify published package.json with library publishing in angular 6?

使用 Angular6 创建节点模块应该非常容易。 Documentation 告诉您这些步骤:

  1. ng generate library YOUR-LIBRARY
  2. ng build YOUR-LIBRARY --prod
  3. cd dist/YOUR-LIBRARY && npm publish

例如,这将在您的 angular.json 中添加一个新项目,在 /projects 中创建一个新目录,并将您的包 compile/transpile 放入 /dist/YOUR-LIBRARY。太好了,但是我找不到在 dist 目录中指定导出的 package.json 的配置方法。

我试过修改/projects里面的package.json但是对分布式package.json没有任何影响。

它总是看起来像:

{
  "name": "YOUR-LIBRARY",
  "version": "0.0.1",
  "peerDependencies": {
    "@angular/common": "^6.0.0-rc.0 || ^6.0.0",
    "@angular/core": "^6.0.0-rc.0 || ^6.0.0"
  },
  "main": "bundles/nls-guilloche.umd.js",
  "module": "fesm5/nls-guilloche.js",
  "es2015": "fesm2015/nls-guilloche.js",
  "esm5": "esm5/nls-guilloche.js",
  "esm2015": "esm2015/nls-guilloche.js",
  "fesm5": "fesm5/nls-guilloche.js",
  "fesm2015": "fesm2015/nls-guilloche.js",
  "typings": "nls-guilloche.d.ts",
  "metadata": "nls-guilloche.metadata.json",
  "sideEffects": false,
  "dependencies": {
    "tslib": "^1.9.0"
  }
}

我什至无法更改版本标签或添加任何信息。当然,手动它会起作用,但这不是解决方案,可以吗?

从 Angular 12.x 开始,每个库都有一个生成的 package.json,该文件是被复制到输出目录中的文件(dist/你的情况)。

生成后看起来像这样:

// projects/my-lib/package.json
{
  "name": "my-lib",
  "version": "0.0.1",
  "peerDependencies": {
    "@angular/common": "^12.0.0",
    "@angular/core": "^12.0.0"
  },
  "dependencies": {
    "tslib": "^2.1.0"
  }
}