问题标签 [npmjs]

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 回答
73 浏览

angular - 已发布的 Angular 库在 npmjs 上没有导入模块

我想在 npmjs 中发布一个简单的角度库。所以,我遵循的步骤是:

  1. 创建项目:

    /li>
  2. 创建了库:

    /li>
  3. 为库创建了一个模块:

    /li>
  4. 将一些代码写入模块:

  5. 将库声明添加到 public_api.ts 文件:

    /li>
  6. 构建和发布库:

    /li>

当我在本地测试库时它可以工作并且库具有导出的模块。

如果我跑

然后导入库

在另一个项目中,它可以工作并且库具有导出的模块。

当我从 npm repo 安装库时

库下载和安装没问题,但就像库是空的,所以缺少所需的模块,如果我尝试在项目中导入模块,它会失败,并且我收到一条错误消息,指出该模块不存在。

我如何发布带有模块或我想保持可用的模块的库?

0 投票
0 回答
424 浏览

node.js - 我破坏了 npm 吗?

大约一天前,我发布了一个 npm 模块,并且从那时起已经更新了几次版本。一开始是 0.0.0,然后是 0.0.1,现在是 0.1.1。

当我访问https://www.npmjs.com/package/skipper-minio时,一切看起来都还不错 - 版本、发布日期、我的傻脸都在那里。

不过,我看到的“问题”是,当您使用 npmjs.com 上的 Web 界面或 npm 命令行实用程序中的任何一个进行返回所述模块的搜索时,版本仍为 0.0.0,发布日期为“无效”/“史前”以及描述和其他元数据不可用。

命令行搜索结果

网络搜索结果 在此处输入图像描述

实际上将模块安装在一个“新”项目中,npm install --save skipper-minio或者skipper-minio@latest两者都做他们应该做的,并安装实际的最新 0.1.1 版本。

那么,这只是在 npmjs.com / npms.io 端缓存的问题,是我的package.json破坏了东西,还是正在发生一些更恶作剧的事情?

0 投票
1 回答
52 浏览

npm - 在内置的自创反应模块中获取重复功能

所以我有一个反应组件,我试图发布到 npm 注册表中。它是一个简单的组件,它决定了要渲染的组件,并且所有要渲染的选项都是由我公司中的其他人创建并从 npm 注册表导入的。

问题是,当我构建我的组件并尝试使用它时,它不起作用并给我下一个错误:

当我查看component.es.js时,我看到它为每个导入的组件和一个为我的父组件创建了 ___$insertStyle(css) 函数,但是前两个在它们之后没有标识号,因此它们重叠

什么可能导致它,我该如何解决?手动删除重复功能之一可以解决问题,但这显然不是正确的方法。

0 投票
1 回答
24 浏览

npm - 为客户提供私人 npm

我正在一个我想部署到 npm 的组件库中工作。一切都很好,但是,我希望我的包裹只对我的客户可见,而不是对所有人可见。

我正在阅读我可以创建一个私有 npm,但在这种情况下,只有协作者可以访问它。

我不希望我的客户成为我的合作者,我希望他们可以访问,但不能对其进行编辑。

有没有办法做到这一点?任何想法?

0 投票
1 回答
15 浏览

node.js - 从 npm 请求包返回时的大整数轮次

我正在使用 npm 包请求https://www.npmjs.com/package/request来调用 Twitter API,如下所示:

我遇到的问题是,在返回的tweets对象中,推文的 id 例如如下:

四舍五入到 1128740534372184000。

当我使用 Postman 调用 Twitter API 时,我看到了正确的(以上)结果,但查看正文时request我看到的是四舍五入的整数。我怎样才能解决这个问题?

0 投票
0 回答
182 浏览

angular - 如何将 Angular 8 模块发布到 NPM

我正在研究一个角度模块,我需要在几个角度应用程序之间共享它。所以我决定将它发布到 npmjs,但我找不到一个好的文档。有没有人有一个很好的文档来满足我的要求。

0 投票
1 回答
11360 浏览

node.js - 如何利用 npm 审计?

TLDR:是否可以利用漏洞检测功能npm audit作为一个 RESTful 服务而不是当前的 CLI 实现?

npm针对节点安全平台 (NSP) 漏洞数据库对每个安装请求提供自动漏洞扫描,并在您尝试使用不安全代码时发出警告。此外,npm audit递归地分析您的依赖关系树以明确识别不安全的内容,推荐替代品,或使用 npm audit fix 自动修复它。

这个功能很棒,我希望能够在 Web 应用程序中利用这个漏洞扫描功能。那么我为什么要这样做呢?

似乎大多数公司都拥有一个内部 JFrog 存储库,它需要不断更新和维护以镜像npmjs。但是,一种更有效的方法(在我看来)是使用mitmproxy创建一个简单的 Web 应用程序嵌入其中。然后,此 Web 应用程序将更像代理,并允许基于自定义业务逻辑和/或 npm 审计漏洞报告结果过滤掉 npm 请求。这样做的好处是允许人们自定义他们的风险评估容忍度以及利用 npmjs 分发请求的库。因此,这将消除公司托管任何内部 JFrog 实例的需求,并可能通过让 npmjs 处理所述库的托管来降低成本。

下面列出的是npm audit报告的一部分:

审计报告样本:

我看到这npm audit是利用以下 url 进行漏洞检测:

其中<id>是代表相关库的数字。在我的示例中:jquery => 796。

我不知道如何将这个组件名称复制到我的 id 映射,没有蛮力手动工作,以便抓取漏洞详细信息的响应。我知道这个 API 的内部工作出于安全原因被故意混淆,通常大多数安全提供商都希望通过他们的服务赚钱。

话虽如此,对于第一次通过了解是否<package>@<version>是高/中/低漏洞就足够了。我看到 html 页面中有一个嵌入的<script>标签,其中包含漏洞详细信息:

我对任何其他开源安全扫描工具持开放态度,例如:Snyk、OWASP 等……只要我可以利用这种漏洞检测能力作为 Web 服务。关于尝试/使用其他什么的任何想法?

任何帮助将不胜感激!

更新:

似乎 Node Security 正在利用国家漏洞数据库 ( NVD ) 来解决开源漏洞,并将模块映射到常见漏洞和暴露(CVE)。可以在这里以多种形式获取整个 CVE 数据集。也许这些数据可以反向映射?我在嵌入式<script>标签中看到有问题的模块有很多字段。直接相关的两个字段是:cvesmodule_name。Wheremodule_name指向有问题的模块,在我的示例 jquery 中,并且cves似乎是来自 CVE 数据集的一对一映射上文提到的。这将允许人们将整个数据集读入数据库并将该数据库用作查找的真实来源。所以问题真的变成了:

Node Security 如何将 CVE 映射到 module_names?这是手动工作还是备用数据集中有更多列/字段?

更新 2

NVDSnyk都提供用于库漏洞检测的 RSS 提要。在幕后,这正是 npm audit 在安装库或运行审计时用来确定高/中/低漏洞的方法。这些 RSS 提要有多种格式,实际上很容易解析。此外,它们还包含模块到漏洞的映射。

话虽如此,如果您想利用这些开源扫描仪,则必须遵守其指定的许可证和使用规则。例如,Snyx 的 RSS 提要使用规则如下:

Snyk 的漏洞数据库 RSS 提要。此数据库(提要和存储库)根据 AGPL-v3 许可证获得许可,该许可证通常允许在内部使用,但禁止将数据库嵌入到其他产品或服务中,除非该产品和提供的服务是开源的并且根据 AGPL-v3 许可证。 ** 如需 Snyk 漏洞数据库的不同许可,请通过 contact@snyk.io 联系我们**

至于注意到的一些问题:

您将利用 npmjs(它是开源的),这就是重点。Npmjs 将保存您所有的库,并且您将按预期使用 npmjs。如果您需要更多隐私,例如使用私有范围的模块供内部使用,您可以直接向 npmjs 付费。抱歉,如果我不清楚这一点,因为其目的是仅使用 npmjs,而不是向第三方实体支付费用来为您托管 JFrog 存储库。

至于许可证方面的问题,您应该始终遵守管理软件使用或再分发的法律。

0 投票
2 回答
59 浏览

python - python:从 couchdb 端点获取 npm 包数据

我想获取 npm 包元数据。我找到了这个端点,它为我提供了所有需要的元数据。

我制作了以下脚本来获取这些数据。我的计划是选择一些特定的键并将该数据添加到某个数据库中(我也可以将其存储在 json 文件中,但数据很大)。我制作了以下脚本来获取数据:

请注意,我什至不包括all-docs,但它会陷入无限循环。我认为这是因为数据量很大。

查看来自 - https://replicate.npmjs.com/_all_docs的输出的头部

给我以下输出:

请注意,所有文档都从第二行开始(即所有文档都是“行”键值的一部分)。现在,我的问题是如何只获取“行”键的值(即所有文档)。我出于类似目的找到了这个存储库,但由于我是 JavaScript 的初学者,因此无法使用/转换它。