2

我正在尝试使用 lerna 构建我的第一个 Angular 组件包,它运行良好,直到我意识到我必须添加“ng-packagr”才能将所有 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"
  ],
...

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

在此处输入图像描述

但是当我运行 alerna publishnpm pack时会发生这种情况:

在此处输入图像描述

如您所见,只有 1 个文件被添加到 tarball...

有谁知道为什么会突然发生这种情况?我试过玩弄我的 .gitignore ,想可能是它迫使包装忽略这些其他文件,但事实并非如此。

更新

好的,所以我发现罪魁祸首是ng-packagr。当我运行我的npm run buildwhich usedng-packagr -p package.json来构建不同的模块包时,该 CLI 也会生成一个 package.json 进入我的dist文件夹。当npm packlerna publish尝试使用 a 打包所有内容时,package.json他们必须查看生成的 on indist而不是其上方文件夹中的那个。

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

4

1 回答 1

1

我的解决方案是放弃使用 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
于 2019-04-10T15:39:48.570 回答