Tag: npm link

获取__dirname指向文件夹path,而不是实际连接的文件夹path

如何让__dirname指向保存的文件夹path,而不是使用npm链接的符号链接文件的实际path。 脚本 文件夹设置 project | —- moduleA | | | —- moduleA.js | —- app | — node_modules cd project/moduleA npm link cd project/app npm link moduleA 在moduleA.js里面 __dirname -> /project/moduleA 但是,预期的行为是 __dirname -> /project/app/node_modules/moduleA 因为npm链接会创build一个sym-link,将链接的模块插入到node_modules文件夹中,从而模拟直接安装模块的体验。 我怎样才能让__dirname指向保存的path,而不是模块所在的真实path? 注意:–preserve-symlinks命令行选项不会影响__dirname的值

npm:缺lessnode_modules中的传递依赖关系

我有两个本地npm项目, A和B 比方说, A依赖于react并将其列为package.json文件中的依赖项。 我使用npm link使A可用于B B依赖于A并react 。 我使用npm link A来使用npm link A的本地版本。 但是,据我所知, A已经依赖于react ,我不包括在我的package.json文件的react 。 当我打电话给npm install我希望npm在node_modules文件夹中包含传递依赖关系。 但是,我无法findreact ,只要不在B的package.json文件中包含传递依赖关系,我也不能在B的代码中使用它。 当我包含react等其他模块,我也得到像fbjs或encodingparsing到我的node_modules文件夹传递依赖node_modules 。 那么,错误在哪里? /为什么A的依赖关系不包含在B的node_modules文件夹中?

父React应用程序li​​nting编译通过`npm link`连接的依赖代码

我有一个React应用程序,它依赖于我创build的库中的另一个React组件。 当我在Parent上运行构build脚本,并通过npm install依赖项时,父应用程序中不会创build依赖项。 但是,当我运行npm link所以我可以在本地开发组件,并让我的父应用程序运行它的构build脚本,由于它正在linting传输代码的依赖项,它失败。 任何想法为什么发生这种情况? UPDATE 这似乎与最终捆绑结束的目录名称有关。 我把它命名为bin 。 通过npm文档阅读看来, npm link为模块的目录以及bin目录(如果有的话)创build了一个符号链接。 我只是把名字改成了dist ,并解决了这个问题。 不是最好的答案,但希望它可以帮助处于同样情况的人。

节点js – mongoose不能访问包含在包中的数据库

我已经开始在平均技术方面的工作, 我有一个模块myModule; 它具有访问数据库的路由,服务,模型; 我创build了另一个项目,myAnotherModule在一个单独的目录,并有“npm链接”编辑到myModule; 虽然我尝试在myAnotherModule中使用mongoose,但无法使用正确的凭据访问数据库; 在myAnotherModule中的以下代码中, var db = mongoose.connection.db; var mongoDriver = mongoose.mongo; var gfs = new grid(db, mongoDriver); 它没有findmongoose.connection.db和db是未定义的; 如果我在myModule中使用这些行,那么代码工作正常; 为什么myAnotherModule无法findmongoose.connection.db? npm链接如何工作? 我会感谢在这方面的任何帮助 -Indu

如何在模块Aimport模块B的地方开发两个angular模块

当在angularjs中开发两个本地项目(其中一个导入另一个)时,我只需要在模块B的文件夹中运行“npm link”,然后在主模块文件夹中运行“npm link module-B”,并且每当我更改模块BI会直接在我的浏览器服务模块A中看到它 但是angular度(4)似乎并不那么容易。 我使用ng-packagr来生成dist文件夹。 我在dist文件夹下运行npm链接。 我在主模块的文件夹中运行npm link module-B。 然后运行ng serve –preserve-symlinks。 到目前为止,它可以理解模块B的组件。但是,如果我尝试改变模块B中的东西,重新运行ng-packagr,我的主模块的“ng服务”不能编译,我必须停止并启动ng服务。 我认为,ng-packagr首先删除dist文件夹,这会触发在ng服务器中重build失败,并且不会注意到删除dist文件夹后新创build的文件。 我们是否需要使用ng-packagr或者是否有其他方式来进行多项目本地开发。 更新 : 如果我们在ng-packagr.js中注释掉这个部分,只要文件被改变并运行ngpackagr就不会删除文件夹和浏览器更新: return Promise.all([ /*rimraf_1.rimraf(p.dest),*/ rimraf_1.rimraf(p.workingDirectory) ]); 但是运行ng-packagr需要一些时间,具体取决于库的大小。 由于它构build了整个事情,而不仅仅是文件的变化。

npm更新取消链接链接的包

我有一个项目,其中包含一个根节点包,其中包含由npm链接在一起的子包 – 这些子包相互依赖(列在package.json依赖项中),结构基本如下所示: -rootpackage –subpackageA –subpackageB 假设subpackageA依赖于subpackageB,所以我把它们链接起来,避免在subpackageB的源代码发生变化之后,在subpackageA中发布/重新安装subpackageB。 链接工作得很好,直到我运行npm update subpackageA,导致子包B被取消链接。 现在,我看到两个选项: 我理论上可以在每次npm install或npm update后运行npm link操作,以确保链接始终存在。 这在postinstall的情况下适用于postinstall ,但是在更新的情况下,不postinstall 。 我不知道更新后会调用npm的任何postupdate命令。 也许有一种方法可以更聪明地做到这一点,也许用纱线 ,我也使用,在某种程度上,它可以防止取消链接或排除我的子包的更新,所以我不会失去我的子包之间的链接,但现在我不知道这样的方式。 有没有办法使这些选项之一工作或任何其他方式来解决这个问题? 我需要保持这个和其他的链接,所以我们不必在每次安装/更新后运行npm link 。 我无法在任何地方真的find关于这个问题的信息。 顺便说一句我正在使用节点6.4.0和NPM 3.10.3。

如何在安装时直接执行“npm link”

我有一个内部项目,我想用bin命令链接到一个文件。 喜欢期待这个package.json : { "name": "my-project", "bin": { "cli-name": "./bin/my-executable.js" }, "dependencies": { "node-red": "^1.0.0" } } 执行npm install ,所有的依赖关系都会被安装,并且node-red的binconfiguration也会被创build。 但我自己的bin将被完全忽略。 在cmd不能使用cli-name 。 第二步也需要执行npm link 。 然后cli-name将在控制台中作为命令使用。 我甚至尝试使用npm link的npm postinstall脚本,但后来我得到了一个循环… 有没有一种方法可以在npm install上一步完成?