lerna publish和npm pack未能打包“中的所有文件”;dist";文件夹

lerna publish和npm pack未能打包“中的所有文件”;dist";文件夹,npm,lerna,ng-packagr,npm-pack,Npm,Lerna,Ng Packagr,Npm Pack,我正在尝试使用lerna构建我的第一个Angle组件包,它工作得非常好,直到我意识到我必须添加“ng Packagegr”才能将所有HTML绑定到代码的其余部分。在添加支持并使其工作后,我的文件突然无法发布到tarball中 这是我的package.json { "name": "@custom/core", "version": "0.0.7", "description": "Test", "main": "./dist/bundles/custom-core.umd.min

我正在尝试使用lerna构建我的第一个Angle组件包,它工作得非常好,直到我意识到我必须添加“ng Packagegr”才能将所有HTML绑定到代码的其余部分。在添加支持并使其工作后,我的文件突然无法发布到tarball中

这是我的package.json

{
  "name": "@custom/core",
  "version": "0.0.7",
  "description": "Test",
  "main": "./dist/bundles/custom-core.umd.min.js",
  "module": "./dist/esm2015/custom-core.js",
  "typings": "./dist/index.d.ts",
  "$schema": "./node_modules/ng-packagr/package.schema.json",
  "ngPackage": {
    "lib": {
      "entryFile": "./src/index.ts"
    },
    "whitelistedNonPeerDependencies": [
      "."
    ]
  },
  "scripts": {
    "build": "ng-packagr -p package.json"
  },
  "files": [
    "dist"
  ],
...
My dist文件夹包含以下所有类型的文件夹:

但当我运行
lerna publish
npm pack
时,会发生以下情况:

正如您所看到的,只有一个文件被添加到tarball中

有人知道为什么这会突然发生吗?我试着玩弄我的.gitignore,认为这可能是迫使打包忽略这些其他文件,但事实并非如此

更新

好的,我发现罪魁祸首是
ng packagr
。当我运行我的
npm run build
时,它使用
ng packagr-p package.json
来构建不同的模块包,CLI也会生成一个package.json,它位于我的
dist
文件夹中。当
npm pack
lerna publish
尝试使用
package.json
打包所有内容时,他们必须查看
dist
中生成的内容,而不是上面文件夹中的内容


我不确定该如何解决这个问题。

我的解决方案是放弃使用package.json文件中的files键的计划,改为使用.npmignore文件。这是我的一份副本:

# Node generated files
node_modules
npm-debug.log
assets
package-lock.json

# aot files
aot

# OS generated files
Thumbs.db
.DS_Store

# Ignored files
*.ts
!*.d.ts
tsconfig.json
tsconfig-aot.json
tslint.json
*.tgz
config
src
我当前的“hack”是将“*”放在package.json的“files”属性中,这也将添加所有源文件。我不希望在这个发布的工件中包含源文件,但是如果这是使它工作的唯一方法的话