Articles of 依赖关系

Node.js:全局声明node_modules,或根据需要在本地声明?

Node_modules依赖关系应该在应用程序代码的开始处全局声明,还是在需要时在本地声明? 我想知道是否有最佳做法。 例如,我使用index.js引导我的应用程序,并在需要时需要脚本。 例如,我的security.js模块可能需要使用node_hash 。 现在,我应该要求在security.js中 var node_hash = require('node_hash') 或全局要求在index.js所以它是可用的security.js (但也是一切)?

npm链接多个本地(相互依赖)模块

我有3个node.js模块, A , B和C 所有这些都是私人的git回购。 A取决于B取决于C Git克隆A和做npm install就像一个魅力。 但是,当在模块A上编码时,我也想在B (和C )上工作。 后两者也是git克隆的。 而npm link ../pathto/B效果很好。 而由于B依赖于C , npm link负责将C安装到B/node_modules/C 。 它是一个静态文件克隆,被B 。 所以当做npm link ../pathto/C ,会产生A/node_modules/C (是一个符号链接)。 但是,这就是问题, B将使用它的静态克隆,而不是我已经链接到A/node_modules/C A/ … node_modules/ B -> B/ C -> C/ B/ … node_modules/ C/ … C/ … 有没有人有解决这个问题的想法?

有没有一种快速的方法来找出我的node.js / npm项目中的所有依赖关系的来源?

npm能够安装官方npmregistry,giturl,HTTPurl和其他来源的依赖关系。 有一个快速的方式来recursion确定我的项目中的所有依赖项的来源? 基本上我需要确保我所有的依赖来自同一个地方。 有一件事我想到的是recursion读取所有package.json文件,并确保所有的依赖是一个有效的semver数字。 NPM是否有这个内置的工具? 有没有快速的shell技巧,我可以使用,而不是写一个节点脚本来做到这一点?

自动更新NodeJS应用程序中的package.json

我已经使用npm init创build了package.json。 经过一段时间后,我根据需要安装了更多的模块。而不是手动更新package.json依赖关系,有什么方法可以自动更新吗?

通过NodeJS中的依赖项对TypeScript文件进行sorting

我有一些文件,其中一些有依赖,其中一些没有。 也有cicle依赖关系。 我想通过这个依赖来sorting这个文件,以后按照正确的顺序连接文件。 这是TypeScript文件,但我收集了一个NodeJS程序中我想对TypeScript文件进行sorting的所有文件。 例子(这只是随机的名字):

依赖关系共享的NPM依赖关系

在npm 3.3.12(节点4.2.2)上,发生以下事情: 我在一个项目中运行npm install ,其中我的项目中的某个依赖关系也是其他依赖关系之一的依赖关系。 例如: 我的项目依赖于PackageA和PackageB PackageA也依赖于PackageB 我的项目和PackageA都依赖于PackageB的相同版本 然后,我在我的项目中运行npm update 。 NPM输出列表: PackageB@xxx node_modules/PackageB -> node_modules/PackageA/node_modules/PackageB 因此,然后突然,PackageB不在我的项目的node_modules(仅在PackageA下的node_modules中),并且项目文件中的require(“PackageB”)失败。 是什么原因造成的,我怎样才能最好的避免这个问题呢?

LoopBack:稍后设置必需的字段

如果“types”值为“在线”,我遇到了需要“电子邮件”属性的场景。 在一个通用的观点,我有一个字段,可能需要或不依赖于另一个字段的值。 我将如何去解决这个情况? "properties": { "type": { "type": "string", "required": true }, "email": { "type": "string" "required": //true or false depending on what 'type' is } }

如何将本地依赖添加到npm项目

如何使javascript项目依赖于使用package.json的本地javascript项目? 我必须依赖的项目在目录中没有任何npmconfiguration文件。

理解npm的依赖关系

我试图弄清楚到底是怎么回事与npm依赖关系。 我的问题的最短具体forms是:鉴于我的传递依赖关系图使用不同的版本多次调用某个包,为什么这些不同的版本不在npm list或文件系统中显示? 我不想用垃圾混淆全局命名空间来进行testing,所以将使用我当前的实际项目; 我觉得它足够小,可以清楚。 C:\ayane>npm list ayane@3.0.1 C:\ayane +– clause-normal-form@2.4.0 | +– big-integer@1.6.22 | +– big-rational@0.10.6 | +– clone@2.1.1 | `– lodash@4.17.4 +– command-files@1.1.0 | `– glob@7.1.1 | +– fs.realpath@1.0.0 | +– inflight@1.0.6 | | `– wrappy@1.0.2 | +– inherits@2.0.3 | +– minimatch@3.0.3 | | `– brace-expansion@1.1.7 | | +– balanced-match@0.4.2 | | `– […]

节点:如何根据env需要不同的类

在节点中,模块导入(又名require())被硬编码到需要导入的每个文件(又名模块)中。 这可能是几十个或者在我们的情况下有数百个重复的import。 我们以dynamic方式“要求”的主要是服务,例如“playerService”包含查找,更新,获取方法等,但也可以是域对象或持久性库 关键是我们有这个“playerService”js文件的3个版本。 一个在本地(在内存中)进行开发的东西,一个用本地数据库(testing)完成所有工作的东西,一个用API(live)与外部系统完成所有事情的东西。 在这种情况下开关在环境(开发,testing或生活)。 值得注意的是,我们可以在任何地方使用类,因为我们发现返回函数的函数等的函数是不可读/可维护的(我们是java开发人员真正挣扎于js) 我们也专门在我们的节点应用程序中使用web套接字 – 没有http代码。 所以我们的服务如下所示: const Player = require("./player") class PlayerService { constructor(timeout) { this.timeout= 3000 // todo, put in a config file if (timeout != null) {this.timeout= timeout} } updatePlayer(player) { // logic to lookup player in local array and change it for dev version. // test version […]