gpt4 book ai didi

npm - lerna publish 和 npm pack 无法打包 "dist"文件夹中的所有文件

转载 作者:行者123 更新时间:2023-12-05 05:12:01 25 4
gpt4 key购买 nike

我正在尝试使用 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 文件夹包含如下各种文件夹:

enter image description here

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

enter image description here

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

有谁知道为什么会突然出现这种情况?我试过玩弄我的 .gitignore,认为它可能会强制打包忽略这些其他文件,但事实并非如此。

更新

好的,所以我发现罪魁祸首是 ng-packagr。当我运行使用 ng-packagr -p package.json 构建不同模块包的 npm run build 时,该 CLI 还会生成一个 package.json我的 dist 文件夹。当 npm packlerna 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

关于npm - lerna publish 和 npm pack 无法打包 "dist"文件夹中的所有文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54912262/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com