适用于VS2015的Nodejs工具,具有本地依赖性
我正在尝试使用VS2015的NodeJS工具构build一个节点js 项目 。
在这个解决scheme中,有一个主项目在子文件夹中有子项目,即每个子文件夹都有自己的package.json和自己的代码,每个子文件夹声明自己的依赖关系到其他项目。
我的问题是,当我在主项目中执行“npm install”时,“npm”从npmregistry下载软件包。
我知道可以使用:
"dependencies": { "common": "file:path/to/common", }
但是这种方法迫使我手动维护两个package.json文件,并在每次提交时重命名(项目是开源的,在github上)。 这是麻烦和容易出错。
我的问题是:我可以configurationVS的NodeJS工具来处理两种不同的debugging和发布configuration? 即以类似的方式,我可以在一个C#项目中做到这一点。
就像使用package.Debug.json
文件一样…欢迎任何其他方法。
要做到这一点,你可以使用npm-link来创build一个包和它的源代码之间的链接(这篇文章非常有趣: npm链接:开发你自己的npm模块而不会stream泪 )
在你的情况下:
- 为每个子项目执行
npm link
- 在主项目中,执行
npm link subproject1
…npm link subprojectN
我已经用Visual Studio 2015testing了两个项目的解决scheme
nodejs-projectdeps |- nodejs-projectdeps-main |- nodejs-projectdeps-module1
package.json为nodejs-projectdeps-main
{ "name": "nodejs-projectdeps-main", "version": "0.0.0", "description": "nodejs-projectdeps-main", "main": "app.js", "dependencies": { "azure": "^0.10.6", "nodejs-projectdeps-module1": "0.0.0" } }
package.json为nodejs-projectdeps-module1
{ "name": "nodejs-projectdeps-module1", "version": "0.0.0", "description": "nodejs-projectdeps-module1", "main": "app.js", "dependencies": { "dockerctl": "0.0.0" } }
然后我在nodejs-projectdeps-module1
项目文件夹中执行npm link
,结果是:
C:\Users\...\npm\node_modules\nodejs-projectdeps-module1 -> C:\src\nodejs-projectdeps\nodejs-projectdeps-module1
在npm link in the nodejs-projectdeps-module1
项目文件夹中执行了npm link in the nodejs-projectdeps-module1
之后,结果是:
C:\src\nodejs-projectdeps-main\node_modules\nodejs-projectdeps-module1 -> C:\Users\...\npm\node_modules\nodejs-projectdeps-module1 -> C:\src\nodejs-projectdeps\nodejs-projectdeps-module1
毕竟, Visual Studio 2015中的解决scheme以这种方式显示了依赖关系:
更新 :我的testing代码的来源在GitHub上发布