Articles of 依赖关系

如何在package.json中强制嵌套的npm依赖关系

我相信这是很常见的问题,但是我仍然找不到可靠的答案。 在我的package.json中,我有依赖项 – “grunt-selenium-webdriver”,它的package.json中列出了一些不能从我们的networking访问的依赖版本(我们正在使用内部有时滞的NPMregistry)。 我想使用当前版本的grunt-selenium-webdriver,但使用不同版本的嵌套依赖。 这有可能吗? PS:我尝试了同行依赖,但它似乎旨在解决另一个问题。

如何pipe理内部Node.JS模块

在node.js应用程序中处理内部模块的首选方法是什么? 我的意思是,目前我们有一个相当大的应用程序,有几个依赖,通过npm安装。 我们有.gitignore node_modules 。 因此它不在存储库中。 我们使用npm shrinkwrap来冻结模块版本,所以在部署时,一个npm install把我们需要的东西放到node_modules 。 问题是,由于应用程序越来越大,我们希望将其分割成更小的模块。 现在,如果我创build一个foo模块并将其放入node_modues ,我需要在repo中允许它,这似乎不是很好,因此忽略并检查了node_modules模块。 我们不能在npmregistry上发布这些信息,因为它们并不真正“公开”。 有没有明显的解决scheme,我不知道?

Node.js / npm – 无论如何告诉如果一个包是纯JS还是不是?

我注意到在试图用npm安装看起来很简单的节点包(例如神经 ,一个“微框架”)时,我经常遇到某种forms的依赖性疼痛。 经过一番深入的研究,我对bcrypt模块进行了深入的研究,这个模块显然是用C / C ++编写的,必须在软件包pipe理器下载后才能编译。 不幸的是,似乎如果你想在Windows上工作,答案是(从一个bcrypt问题线程)“安装一个Linux VM”。 所以在今天早些时候,我就这样做了,并开始运行到其他依赖项(即使安装了GCC,您甚至还需要安装一些未命名的apt套件 ,然后才能看到另一个C编译器错误)其他不能find“Arrays.c”我想),我实际上放弃了,反而从神经转为expression。 具有讽刺意味的是,在Linux和Windows上使用npm安装更大,更复杂的express没有任何问题。 所以,我的问题是:是否有任何filter/依赖关系跟踪可用,让你看看如果一个包除了节点核心有额外的依赖? 因为对我来说节点的魅力是“Javascript里的一切”,而这种东西相当不愉快地驱散幻觉。 事实上,尽pipe我已经比C / C ++做了更多的工作,但是现在每当我看到“制造”某些东西的要求时,我通常就会朝另一个方向尖叫。 🙂

有没有办法从.js文件自动安装node.js依赖关系?

如果我有一个foo.js节点脚本,有没有办法让我自动安装所有的npm依赖关系? 例如,如果foo.js有这样的: var program = require('commander'); var cheerio = require('cheerio'); 有没有任何npm命令或者我可以做的那样会读取foo.js并执行“npm install commander; npm install cheerio”?

为Node.JS + NPM使用备用依赖项列表

是否有可能有一个NodeJS项目的两个package.json文件? 在我正在开发的一个项目中,有一个可选的实验性function,它需要一些自己的节点包。 对于每一天的发展,我不想强​​迫所有的开发者安装这些软件包。 基本上,我想要的是一个文件,它只是以类似于package.json格式列出npm依赖关系,然后使用npm install来安装所有这些文件。 例如: // package.json: { "dependencies": { "underscore": "1.1.7", "connect": "1.7.0" } } // alt.json { "dependencies": { "experimental_package": "0.0.1", "and_another_one": "1.33.7" } } 然后,像这样的东西: $ npm install // install the regular package.json stuff $ npm install alt.json // install the other ones 请注意,这与devDependencies 不一样

“npm update”是在“npm install”之后安装的稳定版本上安装模块的beta版本,

目前npm包mongoose在版本3.8.12上。 运行npm install mongoose –save正确安装版本3.8.12并将依赖关系保存到package.json,如下所示: "dependencies": { "mongoose": "^3.8.12" } 如果你看看node_modules/mongoose/package.json你可以看到安装的版本确实是3.8.12。 但是,如果我现在运行npm update那么npm将继续,并安装一个不稳定版本的mongoose(3.9.0)。 我认为这是因为依赖项条目中的脱字号,告诉npm继续升级小版本(即3.8到3.9)。 这很好,除了我不想要任何预发布版本。 如果我修改依赖关系并删除脱字符,那么npm update按预期工作,除了当然我现在必须手动升级依赖项版本,即使是次要和补丁更新。 你可以从运行npm info mongoose看到他们有一个“最新”标签和一个“不稳定”标签。 所以很明显npm install使用最新的,除非另有说明,而npm update则完全忽略了标签,并抓住了它所知道的最新次要版本。 有没有办法修改依赖,所以npm update将拉入最新的次要版本,但忽略任何预发行版本? UPDATE 如果我尝试使用3.xx作为依赖项,则会出现同样的问题。 我希望这仍然可以让我通过小版本升级没有预发布版本,但事实并非如此:/ 蒂尔德( ~3.8.12 )在技术上~3.8.12但是它是一个绷带。 “工作”的唯一原因是因为引入的重大更改是3.9.0-unstable并且代字号不允许npm跨小版本升级。 如果这些“不稳定的”变化在3.8.13-unstable中引入,那么即使在使用代字号时也会出现同样的问题。 更新2 我也尝试手动指定“最新”标签: ^3.8.12-latest 。 这并没有改变任何东西; npm update完全忽略标记,即使它明确地在依赖列表本身:/

Gulp构build不会自动安装依赖关系?

我使用gulp来构build我的JavaScript应用程序。 我在package.json文件中声明了一些依赖项,例如: "dependencies": { "flux": "^2.0.1", "keymirror": "~0.1.0", "object-assign": "^1.0.0", "react": "^0.13.1", "dropzone": "^4.0.1", "lodash": "^3.6.0" }, 当我运行gulp构build时,它总是会提示我一些依赖找不到,除非我手动运行npm install lodash 。 有没有办法让npm install自动运行npm install ?

npm – 将安装的软件包保存为依赖项

我已经通过npm install $package安装了一些软件包,而不是先设置package.json 。 现在我想创build一个package.json文件,但保留所有安装的包作为依赖项。 简单的运行npm init不提供这个选项,我能自动实现吗?

为什么安装一个npm包会在node_modules中添加许多子文件夹?

我已经更新了我用grunt项目使用的node / npm。 然而,当我现在想要添加一个包到一个项目myproject/ (比如npm install grunt-favicon )时,它似乎向myproject/node_modules/添加了数百个文件夹,而它只用来添加一个 – 通常以grunt作为前缀,比如node_modules/grunt-favicon 。 我对这些东西的了解是基本的,但是这些东西似乎是必需的依赖关系,甚至这些东西中的一些还有更多的依赖关系。 是不是应该在其他地方添加这些依赖关系? 如果是这样我怎么改正这个? 我使用npm 3.3.5 , node 4.1.1 , grunt-cli v0.1.13和grunt v0.4.5 。 这个屏幕截图在左边显示~/.npm ,然后在右边显示~/.npm ~/myproject/node_modules

多个package.json文件在一个包中

我有一个运行在PHP上的网站,使用Node进行一些开发任务。 目前,我们的团队依赖puppet来安装我们用于这些开发任务的节点模块,但是,我正考虑转而在站点的根目录中使用package.json文件。 我的问题是这样的: 我的PHP应用程序实际上是3个独立的站点,我们已经混合成一个(1个面向公众的站点,1个内部站点,1个面向站点的客户端),并且其应用程序的一些安装依赖于不同的节点包(或不同版本的同样的pacakge)。 虽然我知道将这些应用程序分开并让每个应用程序都pipe理自己的依赖关系是很好的,但是,有一种方法可以在一个站点中使用多个package.json文件? 换一种说法: /package.json /site1/package.json /site2/package.json /site3/package.json 或者,有没有办法让一个package.json处理多个应用程序的依赖关系? 我不知道这是否有意义,让我知道,如果我只是在左边的领域出路。 谢谢!