问题标签 [npm-pack]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
npm - `npm publish` 忽略 .npmignore 的新增内容
在构建create-near-app
时,会在项目树中创建工件。其中一些已添加到.npmignore
文件中,但其他一些在我尝试发布新版本并注意到由于 Rust 构建工件而导致 npm 包将有数百兆字节大(!!)之前被遗漏了。我将这些添加到.npmignore
,但npm publish
没有注意到。
我可以通过删除文件来解决这个问题,但是对于一个开源库来说,这样的解决方法很容易出错,该库可能由一个不断成长和变化的贡献者团队维护和发布。
npm 是否将.npmignore
文件缓存在某处?如何让 npm 使用新设置?
详细信息和快速参考:
os:macOS 10.15.6
节点版本管理器:asdf v0.7.6
节点:v12.14.1
npm:v6.13.7
包.json:
.npmignore:
输出npm pack --dryrun
:
如果你想自己尝试:
- 克隆存储库
cd common/contracts/rust
cargo build
(你需要安装 Rust)cd ../../..
npm pack --dryrun
对你起作用吗?这是“仅在我的机器上损坏”的事情吗?
npm-pack - npm pack 带来不必要的本地捆绑依赖文件
我有一个项目,它依赖于本地 lib 包。让我给你看一下 pakage.json
并且引用的本地 lib 包在构建时会创建“dist”目录。并且只需要将“dist”目录安装到其他包中。所以它的 package.json 就像......
现在,local-lib 包中的“npm pack”生成了包含“dist”目录的 local-lib-xxx.tgz 文件。它不包括其他目录,例如“src”。这就是我要的。
myproject 包中的“npm pack”会在其中创建捆绑“local-lib”包的 myproject-xxx.tgz 文件。但是 myproject-xxx.tgz 中捆绑的 'node_modules/local-lib' 包含不必要的文件,例如 'src/**'。
这不是我想要的。'myproject' 的部署包不需要 local-lib 包的 'src'。它只需要 local-lib 包的“dist”。
我如何才能获得仅包含部署所需物品的捆绑包?
node.js - NPM 自动排除文件 >
我正在尝试在 npm 上发布一个包。它是 poppler 的 pdftotext 便携版。
lib文件夹结构如下:
但是当我打包时,npm 会自动删除其他文件,只保留 libjpeg 9.2.0 和 libpoppler.so.98.0.0
为什么其他文件被删除?没有忽略文件;不npmignore
也不gigignore
。
删除文件的类型是Link to shared library (application/x-sharedlib)
如何也包含它们?
这是完整的 package.json
node.js - 包中捆绑的本地依赖项在 npm install 上抛出错误
我正在尝试发布一个依赖于未发布包的包,该包需要保持未发布状态。我以为我有一个解决方案:
在开发中,相对路径被硬编码在 package.json 中:
在部署管道中,依赖项是npm pack
'd,然后将 tar 写入上述包:
然后发布该模块。直接安装时,在消费应用程序中似乎可以正常工作:npm install @company/published-module
,但是npm i
运行时,出现以下错误:
似乎当在 npm install 中检查包时,它会沿着 node_modules 中模块所在位置的相对路径并查找 tar 文件,然后放弃npm install
. 如果我跳过 tar,它仍会根据此处提供的相对路径查找模块。
我已经看到有关使用 bundledDependencies 与本地模块一起发布的人的问题,但我还没有看到这个问题出现。我在这里想念什么?
npm - npm run build 如何与 npm pack 一起工作?
我正在开发一个需要使用该npm pack
命令的项目。在创建可安装的 tar 文件之前,是否需要在库/包上运行构建?或者我可以打包然后将其安装到应用程序中吗?
npm - 为什么 `npm pack` 从我的库中删除文件?
我已经组装了一个名为的目录dist
,其中包含要发布的库的各个部分。这是我的代码库的示意图:
特别是,我煞费苦心地创建了一个名为的目录dist/ngx
,它允许一个可选地导入一个 ngx 模块/组件,该模块/组件(基本上)包裹在dist/index.js
. 我的 package.json 内容如下:
当我运行时npm pack
,我希望 的所有内容都dist
打包到输出.tgz
文件中。但是dist/ngx
,npm在打包之前首先完全删除了目录。这真的很奇怪——就好像 npm 做了一些基于主/模块路径的 tree-shaking 以消除它认为不需要的东西。但在这种情况下,我非常需要dist/ngx
成为已发布库的一部分。
我怎样才能npm pack
在打包前不删除东西?为什么不将其中的files:["dist/**/*"]
所有内容打包?
node.js - npm pack 不遵循 .npmignore
我的包树:
我想包含私有模块,而不是发布到 npmjs npm pack
。这是我的:node_modules/m
.npmignore
我的.gitignore
:
但npm pack
不遵循它,只打包前四个文件。
来自https://docs.npmjs.com/cli/v7/using-npm/developers#keeping-files-out-of-your-package,npm
将.npmignore
首先使用。我的问题是为什么npm pack
不遵循它?我的使用有错误吗?
谢谢。
npm - 如何使用 npm pack 打包最新的更改?
我正在尝试在本地测试其中一个包。我要做的是进入我的包的根目录并运行
它创建 .tgz 文件,我通过 .tgz 安装此文件npm i <path to file>
。现在我发现这个 .tgz 文件中缺少我最近的一些更改。我在 css 文件中做了一些微小的修改,这些修改没有反映在打包的 .tgz 文件中。我不确定这里有什么问题。我查看了互联网,但 SA 和其他资源中的所有问题都说要使用“npm pack”来创建 tgz 文件,但不是关于这个问题。
npm 版本 6.14.13
npm - npm pack 缺少文件
我正在构建一个 npm 模块,我想在其中包含两个目录:/dist 和 /demo。
到目前为止,我的方法是在 package.json 中使用“文件”属性:
运行 npm pack 时,tgz 文件成功包含 demo 文件夹,以及 /dist 中的构建文件。
但是,在构建阶段,我添加了一个 shell 脚本,它将一些文件(生成的 mylib.js 和 mylib.css)复制到 /demo 目录。我的问题是npm pack
不关心这些特定文件,它们不包含在 tgz 中(尽管我可以在我的资源管理器中看到它们)。但是,如果 shell 脚本对 /demo/index.html 的内容进行了更改,这些更改将包含在 tgz 中。我怎么能包含丢失的文件?
npm - 是否指定了 NPM 包的格式?
当我运行npm pack
它时,它会生成一个.tgz
包含所有内容的./package/
. 是否在任何地方指定了行为npm pack
?