我正在尝试使用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文件夹包含各种文件夹,如下所示:
但是当我运行lerna publish
或npm pack
时,会发生以下情况:
您会看到只有1个文件被添加到压缩包中...
有人知道为什么这突然发生吗?我试着与我的.gitignore一起玩,认为可能是在迫使包装忽略这些其他文件,但不是那样。
更新
好,所以我发现罪魁祸首是ng-packagr
。当我运行使用npm run build
来构建不同模块软件包的ng-packagr -p package.json
时,该CLI还将生成一个package.json,它位于我的dist
文件夹中。当npm pack
或lerna publish
尝试使用package.json
打包所有内容时,它们必须查看dist
中生成的内容,而不是其上方文件夹中的内容。>
我不确定该如何解决。
答案 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