gpt4 book ai didi

node.js - 具有本地依赖项的 VS2015 的 Nodejs 工具

转载 作者:IT老高 更新时间:2023-10-28 23:27:23 26 4
gpt4 key购买 nike

我正在尝试构建一个 Node js project使用 VS2015 的 NodeJS 工具。

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

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

我知道可以使用:

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

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

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

类似于使用 package.Debug.json 文件的方法...欢迎任何其他方法。

最佳答案

为此,您可以使用 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

nodejs-projectdeps-main

package.json

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

nodejs-projectdeps-module1

的 package.json
{
"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

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



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

关于node.js - 具有本地依赖项的 VS2015 的 Nodejs 工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34909329/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com