问题标签 [npm-lazy]

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 投票
2 回答
3210 浏览

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 使用“已解决”属性?谢谢。

0 投票
1 回答
183 浏览

node.js - 启动时启动 npm_lazy

我想使用 npm_lazy 作为 npm 的本地。

我安装了 npm_lazy 并且一切正常。

使用启动服务器

npm_lazy --config ~/custom_config/npm_lazy.config.js

作品。

但是如何将此命令添加到 linux 服务器的启动中。我正在运行 Ubuntu 14.04.3 LTS。

我试过了:

vi /etc/init.d/npm_lazy

chmod ugo+x /etc/init.d/npm_lazy

npm_lazy

脚本.sh

最后

update-rc.d npm_lazy defaults

0 投票
2 回答
1566 浏览

reactjs - 从 React js 中的第一个 API 调用加载所有内容(延迟加载)时进行第二个 API 调用

我有一些 .json 文件。我需要在浏览器中将第一个 .json 文件中的所有数据显示为延迟加载。当从第一个 .json 文件加载所有内容时(当用户 scoll 到页面末尾时,我需要对第二个 .json 进行 API 调用) . 我不应该一次调用所有 API。如何使用 react js 做到这一点。