问题标签 [npm-shrinkwrap]
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.
javascript - 如何将新创建的节点模块保存到我的 package.json?
我将新功能作为节点模块。
当然,当我收缩包装时,我会收到如下错误消息:
有没有一种快速的方法可以将新创建的无关包保存到package.json
?
node.js - 使用 npm shinkwrap 和 git 跟踪 node_modules
我在一个带有启动器和几个自制插件的节点项目中。这些插件在启动器package.json
中使用 git repo 地址标记为依赖项。
我最近尝试过npm shrinkwrap
完美地给了我用于每个插件的提交,但是插件上的任何开发人员都会破坏这一点。我尝试将其npm link
用于我的 git 存储库,但它们shrinkwrap
不再被跟踪。
所以基本上,我怎样才能为我可以工作的插件克隆 repo,以及如何在精确的时刻获取我的依赖项的快照?
谢谢你能给我的任何线索。
node.js - npm 嵌套依赖不是最新版本
在我的 Node.js 项目中,我有一个依赖项gulp
,该依赖项vinyl-fs
具有一个依赖项,该依赖glob-watcher
项具有一个依赖项gaze
。glob-watcher
is version0.0.6
的gaze
依赖项设置为^0.5.1
.
根据这篇文章,^
(插入符号)表示接受最新的次要版本。所以我希望glob-watcher
安装最新的次要版本gaze
,(在撰写本文时)是0.6.4
. 但它没有,只有0.5.1
安装。
问:为什么?我该如何解决?
我尝试将以下内容添加npm-shrinkwrap.json
到我的项目根目录并运行rm -rf node_modules/ && npm install
:
确实如此,所以gaze
安装了我想要的版本,但不幸的是,该配置导致仅安装了这 4 个依赖项。我可以指定我的整个依赖树来解决这个问题,但这是不可取的,特别是因为我只想覆盖那个包。(但根据所谓的行为,似乎甚至不需要覆盖^
。)
显然,我也可以cd
为该依赖项编写一个 shell 脚本并手动npm install
获得我想要的版本,但如果有的话,我宁愿以“正确”的方式执行此操作。
任何帮助将不胜感激。
node.js - 跨文件夹行共享包
假设我有以下包结构:
在这里,C 的 require(b) 和 D 的 require(b) 会有所不同(唯一的实例,而不是 ===)。这可以通过将 b 上移一级来解决:
现在,当 C 和 D 需要(b)时,它们将获得实际相同的对象。但是,假设我有这个布局:
在这里,我认为没有任何布局可以让 Main 的 require(b) 为 2.0.0,但仍然允许 c 和 d 共享相同的 b。我对么?我可以将 c 和 d 的 b 符号链接到同一个位置,但是我不能真正以收缩包装或任何其他格式表示该结构。
node.js - 流星失败,无法从 npm-shrinkwrap 安装 npm-packages
几天来,我一直在诊断这个问题,并测试了与此类似的“流星”和“npm”依赖项出现的最重要的问题解决方案。我和我的后端工程师都被难住了。
我正在使用 OSX 10.10.3、ruby 1.9.3、node v0.10.36、npm 1.4.28、meteor 1.1.02。
另外,正如错误似乎表明的那样,我不在代理后面。
我的环境路径是:
导出 PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
这是错误:
如果您需要任何其他信息进行诊断,请告诉我。
node.js - 如何防止传递开发依赖被收缩包装
我有一个带有黄瓜列为 devDependency 的 package.json。cucumber 依赖于 cucumber-html。出于某种原因,当我在我的项目上运行 npm-shrinkwrap 时,cucumber-html 包含在 npm-shrinkwrap.json 中。有什么办法可以防止这种情况发生吗?
包.json
npm-shrinkwrap.json
谢谢
javascript - NPM 收缩包装正在开发中
当您npm install
在开发环境中对同时具有 apackage.json
和npm-shrinkwrap.json
文件的项目执行操作时会发生什么?它会忽略收缩包装并package.json
用于所有内容还是仅用于开发依赖项?
npm - 为什么`npm install`使用shrinkwrap的'resolved'属性
我正在考虑在我的计算机上设置一个本地 npm 镜像,例如“npm_lazy”。npm install
但它似乎npm shrinkwrap
不适用于本地镜像。
让我解释。当有npm-shrinkwrap.json
文件时,该npm install
命令总是从收缩包装文件"resolved"
属性中指定的 URL 请求包。因此,即使我有一个在 运行的本地 npm 镜像http://localhost:12345/
,并且即使我将 npm 配置为将其用作其注册表,它也不会从我的本地镜像请求任何包模块(除非"resolved"
收缩包装文件中的属性恰好指向http://localhost:12345/
) .
基本上,npm install
忽略 npm 的注册表配置并遵循 shrinkwrap"resolved"
属性。
是否有理由npm install
使用该"resolved"
属性而不是使用依赖包名称和版本动态构造它?为什么 npm-shrinkwrap.json 有这个字段?
所以回到我的问题。我想使用 npm_lazy 作为本地 npm 镜像。"resolved"
我可以将所有URL重写npm-shrinkwrap.json
为指向http://localhost:12345/
. 但是我的收缩包装文件的可移植性较差——除非他们的计算机运行相同的 npm_lazy 服务器,否则我的同事将无法使用。
我已经考虑将所有registry.npmjs.org
流量重定向到localhost
以创建透明镜像。但这太难了——它需要支持 HTTPS,而且,npm_lazy 将如何访问真正的域?我必须通过它的 IP 地址来指定它,这可能会改变。
有没有其他人尝试做同样的事情——设置本地计算机 NPM 缓存?但是,我的主要问题是,为什么 npm 使用“已解决”属性?谢谢。
proget - 通过 ProGet 使用 npm-shrinkwrap 时出现 ECONNRESET 错误
当使用通过我们的内部 ProGet 服务器安装的收缩包装包时,我们看到 ECONNRESET 问题。当将 npm 注册表配置为常规 npm 注册表并基于此收缩包装包时,一切都安装得很好。我们删除node_modules并在运行之间执行npm cache clean以确保我们强制从 ProGet 下载。有趣的是,当插入文件下载器时, npm-shrinkwrap.json中列出的所有 1,000 多个资源请求都会正确下载。
当使用详细标志进行安装时,我们看到许多 404,其中 npm 客户端似乎任意更改注册表 url 从http://<internal-url>/npm/npm以省略某些请求的 npm/npm,但我们没有'不知道为什么会发生这种情况或是否相关。
我们使用 ProGet 3.8.6、npm 3.3.11 和 3.5.4(在两台开发人员机器上测试,结果相同)和节点 4.2.1。