具有本地依赖关系的VS2015的Nodejs工具

时间:2016-01-20 19:56:26

标签: node.js visual-studio-2015

我正在尝试使用适用于VS2015的NodeJS工具构建节点js project

在这个解决方案中,有一个主项目在子文件夹中有子项目,即每个子文件夹都有自己的package.json,它们有自己的代码,每个子文件都声明自己对其他项目的依赖。

我遇到的问题是,当我在主项目中执行“npm install”时,“npm”会从npm注册表中下载软件包。

我知道可以使用:

"dependencies": {
    "common": "file:path/to/common",
}

但是这种方法迫使我手动维护两个package.json文件并在每次提交时重命名它(项目是开源的,在github上);它很麻烦且容易出错。

我的问题是:我可以为VS配置NodeJS工具来处理调试和发布的两种不同配置吗?即以类似的方式,我可以在C#项目中完成它。

使用package.Debug.json文件之类的东西......欢迎任何其他方法。

1 个答案:

答案 0 :(得分:2)

要做到这一点,您可以使用npm-link在软件包及其源代码之间创建一个链接(这篇文章非常有趣:npm link: developing your own npm modules without tears

在你的情况下:

  • 为每个子项目执行npm link
  • 在主项目中,执行npm link subproject1 ... npm link subprojectN

我使用 Visual Studio 2015 对其进行了测试,创建了包含两个项目的解决方案

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"
  }
}

然后我在npm link项目文件夹中执行了nodejs-projectdeps-module1,结果是:

C:\Users\...\npm\node_modules\nodejs-projectdeps-module1 
  -> C:\src\nodejs-projectdeps\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 中的解决方案以这种方式显示了依赖关系:

Visual Studio NodeJs Solution

更新:我的测试代码的来源发布在GitHub

相关问题