lerna publish和npm pack无法将所有文件打包在“ dist”文件夹中

时间:2019-02-27 18:31:18

标签: npm lerna ng-packagr npm-pack

我正在尝试使用lerna构建我的第一个Angular Component程序包,并且运行良好,直到我意识到必须添加“ ng-packagr”才能将所有HTML与其余代码捆绑在一起。添加该支持并使其开始工作后,我的文件突然没有被发布到压缩包中。

这是我的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"
  ],
...

我的dist文件夹包含各种文件夹,如下所示:

enter image description here

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

enter image description here

您会看到只有1个文件被添加到压缩包中...

有人知道为什么这突然发生吗?我试着与我的.gitignore一起玩,认为可能是在迫使包装忽略这些其他文件,但不是那样。

更新

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

我不确定该如何解决。

1 个答案:

答案 0 :(得分:0)

我的解决方案是放弃计划使用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