问题标签 [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 回答
304 浏览

npm - 复制“npm pack”行为

我试图复制的行为,npm pack因为它有一个限制,它不写入标准输出,它只能写入本地文件(见这个问题:https ://github.com/npm/npm/issues/12039 )

现在,我可以将当​​前目录 tar 并写入标准输出,如下所示:

但是,当您提取npm packtarball 时,您的包的所有内容都应该在一个名为'package'.

所以我的问题是 - 我怎样才能压缩当前目录,但将当前目录放在一个'package'在存档之前调用的目录中?

是否有一些 tar -flag 可以让你这样做?

0 投票
1 回答
31 浏览

node.js - VUE.js JavaScript 安装问题

当我试图在我的机器上安装 NPM 包时。收到此错误。

这是 debug.log 文件点击这里

0 投票
1 回答
153 浏览

angular - 共享 UI 组件

我正在为我的团队创建一个可共享的 UI 组件的项目。该项目是使用Angular CLI并且正在使用 USWDS 框架构建的。

到目前为止,我已经成功地在npm package私有 npm 存储库上创建了一个自定义,并通过我们的package.json. 这npm package被认为是一个核心包(所有项目团队都需要),其中包括USWDS (peer dependencies以及 USWDS 的相关依赖项,如基于标准 USWDS 标头)。bourbonbourbon-neatscsscore

我遇到的问题与我的header.component.html. 我当前使用的路径是./assets/uswds/img/close.svg,当标头是主项目的一部分时,它可以工作。这些图像位于node_modulesUSWDS 包的目录中,这将使它成为我的自定义包的兄弟。此外,图像目录已添加到 中,angular-cli.json因此当我们运行时图像可用ng serve

我将如何更新文件路径以使其正确显示?

0 投票
1 回答
1777 浏览

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

我正在尝试使用 lerna 构建我的第一个 Angular 组件包,它运行良好,直到我意识到我必须添加“ng-packagr”才能将所有 HTML 与其余代码捆绑在一起。在添加了支持并让它现在突然工作之后,我的文件没有发布到 tarball 中。

这是我的 package.json

我的 dist 文件夹包含各种文件夹,如下所示:

在此处输入图像描述

但是当我运行 alerna publishnpm pack时会发生这种情况:

在此处输入图像描述

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

有谁知道为什么会突然发生这种情况?我试过玩弄我的 .gitignore ,想可能是它迫使包装忽略这些其他文件,但事实并非如此。

更新

好的,所以我发现罪魁祸首是ng-packagr。当我运行我的npm run buildwhich usedng-packagr -p package.json来构建不同的模块包时,该 CLI 也会生成一个 package.json 进入我的dist文件夹。当npm packlerna publish尝试使用 a 打包所有内容时,package.json他们必须查看生成的 on indist而不是其上方文件夹中的那个。

我不确定我应该如何解决这个问题。

0 投票
3 回答
4476 浏览

node.js - Npm pack 包含本地模块

我有一些本地模块,我想将它们包含在我的包中以发送到服务器。由于这些本地包不在 npm 注册表中,因此它们需要成为package 的一部分

我尝试了一些方法来使用npm pack将 node_modules 文件夹包含在包中,但是这似乎根本不可能?

其次,我尝试在 package.json 文件中的bundledDepencies中列出本地模块并使用npm pack,但是无论如何这也不包括本地模块;

如何将这些本地模块包含在开发包中?

本地模块本身确实包含依赖项,不确定这是否会使事情变得更复杂?

0 投票
2 回答
1814 浏览

npm - npm pack/publish 不会打包 .gitignore 或 .npmrc 文件

我为我的公司构建了一个项目生成器。它是一个全局安装的 npm 包,运行时会获取/template包内目录的全部内容并将其复制到用户选择的目的地。

在里面/template我有 2 个文件npm pack 拒绝包含在最终发布的模块中:

/template/.gitignore

/template/.npmrc

其他所有内容,包括其他隐藏文件,都按预期打包。

这两个文件不在任何根(或嵌套) .gitignore 文件中,而且我没有files在 npm 可能获取的任何 package.json 中手动指定任何数组。

0 投票
0 回答
91 浏览

typescript - 带有扩展另一个类的类的打字稿定义文件(自动生成)

对于扩展另一个类的文件,我遇到了自动生成的 d.ts 文件的问题。我们有一个这样的类结构:(TS 版本 3.2.4)

然后我们有一个扩展它的类:

然后我们使用这个配置文件运行带有声明标志的 tsc:

d.ts 文件似乎生成得很好:

然后我们将其打包为一个 npm 包并将其安装在一个单独的项目中。

当我们在消费项目中使用 MyClass 时,我们无法访问 MyClass 的任何基本成员,例如

我显然在这里遗漏了一些东西。我在这里做错了什么?任何帮助,将不胜感激。

谢谢

编辑:这似乎与 npm 包中的绝对路径和相对路径有关。我们在库中有绝对路径,并且 d.ts 文件也使用绝对路径生成。似乎在其他应用程序中使用这些类时,似乎无法通过它们的路径找到导入的类。我将 node_modules d.ts 文件破解为消费项目中的相对导入路径,它工作正常。我也可以将 npm 包中的路径更改为相对路径,但我想避免这种情况。

0 投票
0 回答
179 浏览

node.js - 如何 NPM 发布,以便消费者可以从不同的顶级目录导入

我正在向 NPM 发布一个库。该库是用 Typescript 编写的,Typescript 编译的结果放在一个lib/文件夹中。主文件是一个index.ts导出我的公共 API 的文件:

在 package.json 中,我指定:

一旦我的包发布并安装在其他地方,它的文件夹结构是:

消费者从包根目录导入所有内容:

这行得通,但我喜欢隔离路径的想法。一种方法用于功能,另一种用于模型。目前,如果我删除顶级索引,导入将被隔离,但它们现在包含lib/我不想要的路径中的文件夹:

我实际上想要完成的是相同的,但没有lib/. 我有一个可行的解决方案,但似乎太复杂了。这是有效的:

  1. 在 package.json 中,移除main typesandfiles键。
  2. 删除或清空index.ts
  3. 要发布简单的替换npm publish为以下步骤:
    • 复制 package.json 并将其粘贴到/lib文件夹中
    • cd 进入/lib文件夹并运行npm pack并记下创建的 tarball 的名称
    • npm publish {{TARBALL_NAME}}
    • cd 备份到项目根目录

因此,已发布的包在安装后具有以下文件夹结构:

因为事情不再嵌套在lib/消费者可以按照我的意愿导入的目录中:

问题是打包和发布来完成这件事似乎太麻烦了。当我的队友一直在跑步时,我永远不会让他们进入一个 3 或 4 步的过程npm publish

有没有更简单的方法来完成我所追求的?

0 投票
1 回答
1043 浏览

npm - npm pack 不包含包中的所有文件

我在文件夹npm pack内运行dist,但它不包括所有文件。它只包含:package.json、ReADME.md、index.js(主)。

没有.gitignore文件,我尝试创建一个空.npmignore文件,但没有帮助。

我还尝试将files数组添加到package.json.

根或子文件夹(js 或其他文件)中的所有文件不包含在包文件中。

0 投票
0 回答
322 浏览

reactjs - 自定义 NPM 包:错误:元素类型无效:需要字符串(对于内置组件)或类/函数(对于复合组件),但是

我正在尝试将我的 React 组件发布到 npm 并在尝试将我的打包组件导入另一个项目时遇到以下错误:

错误:元素类型无效:应为字符串(对于内置组件)或类/函数(对于复合组件),但得到:未定义。您可能忘记从定义组件的文件中导出组件,或者您可能混淆了默认导入和命名导入。

该错误消息没有帮助,因为这与默认导入与命名导入无关...

我搜索了类似的问题/答案,虽然人们遇到了类似的错误,但情况/情况并不相同。此外,我阅读的帖子中建议的答案也不起作用。下面是关于我一直试图发布到 npm 的 React 组件的信息。这是我的webpack.config.js

这是我的切入点,Feedback.js

在我npm run build成功运行然后尝试使用npm packnpm link(我都尝试过)在本地测试它之后,当我尝试将我的Feedback组件导入另一个项目时,我收到以下错误:

错误:元素类型无效:应为字符串(对于内置组件)或类/函数(对于复合组件),但得到:未定义。您可能忘记从定义组件的文件中导出组件,或者您可能混淆了默认导入和命名导入。

作为参考,我正在导入我的组件,如下所示:

import Feedback from "feeder-react-feedback";

并尝试像这样将它嵌入到我的项目中: <Feedback projectId="12123123" /> // this is when the error gets thrown

如果有帮助,这是我的 package.json: