问题标签 [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.

0 投票
1 回答
399 浏览

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


如果你想自己尝试:

  1. 克隆存储库
  2. cd common/contracts/rust
  3. cargo build(你需要安装 Rust
  4. cd ../../..
  5. npm pack --dryrun

对你起作用吗?这是“仅在我的机器上损坏”的事情吗?

0 投票
0 回答
86 浏览

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”。

我如何才能获得仅包含部署所需物品的捆绑包?

0 投票
0 回答
25 浏览

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

0 投票
0 回答
215 浏览

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 与本地模块一起发布的人的问题,但我还没有看到这个问题出现。我在这里想念什么?

0 投票
1 回答
481 浏览

npm - npm run build 如何与 npm pack 一起工作?

我正在开发一个需要使用该npm pack命令的项目。在创建可安装的 tar 文件之前,是否需要在库/包上运行构建?或者我可以打包然后将其安装到应用程序中吗?

0 投票
0 回答
12 浏览

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/**/*"]所有内容打包?

0 投票
1 回答
177 浏览

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-packagenpm.npmignore首先使用。我的问题是为什么npm pack不遵循它?我的使用有错误吗?

谢谢。

0 投票
1 回答
89 浏览

npm - 如何使用 npm pack 打包最新的更改?

我正在尝试在本地测试其中一个包。我要做的是进入我的包的根目录并运行

它创建 .tgz 文件,我通过 .tgz 安装此文件npm i <path to file>。现在我发现这个 .tgz 文件中缺少我最近的一些更改。我在 css 文件中做了一些微小的修改,这些修改没有反映在打包的 .tgz 文件中。我不确定这里有什么问题。我查看了互联网,但 SA 和其他资源中的所有问题都说要使用“npm pack”来创建 tgz 文件,但不是关于这个问题。

npm 版本 6.14.13

0 投票
1 回答
69 浏览

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 中。我怎么能包含丢失的文件?

0 投票
0 回答
33 浏览

npm - 是否指定了 NPM 包的格式?

当我运行npm pack它时,它会生成一个.tgz包含所有内容的./package/. 是否在任何地方指定了行为npm pack