lerna publish и npm pack не могут упаковать все файлы в папку "dist" - PullRequest
0 голосов
/ 27 февраля 2019

Я пытаюсь собрать свой первый пакет Angular Component, используя lerna, и он работал довольно хорошо, пока я не понял, что мне нужно добавить «ng-packagr», чтобы весь встроенный HTML-код был встроен вместе с остальным кодом.После добавления этой поддержки и обеспечения ее работы теперь мои файлы неожиданно не публикуются в архиве.

Вот мой пакет. 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 publish или npm pack, происходит следующее:

enter image description here

Как вы видите, в архив добавляется только 1 файл ...

Кто-нибудь знает, почему это происходит внезапно?Я попытался поиграться с моим .gitignore, думая, что, возможно, он заставлял упаковку игнорировать эти другие файлы, но это было не так.

UPDATE

Хорошо, такЯ обнаружил, что виновником является ng-packagr.Когда я запускаю свой npm run build, который использует ng-packagr -p package.json для сборки различных пакетов модулей, этот CLI также генерирует package.json, который находится внутри моей папки dist.Когда npm pack или lerna publish пытаются упаковать все, используя package.json, они должны смотреть на сгенерированный файл в dist, а не в папке над ним.

Я неуверен, как я должен это исправить.

1 Ответ

0 голосов
/ 10 апреля 2019

Мое решение состояло в том, чтобы отказаться от моего плана использовать ключ files в файле package.json и вместо этого использовать файл .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
...