Visual Studio MVC 5 web 项目 - 我应该在项目中包含 "node_modules" 文件夹吗?

Visual Studio MVC 5 web project - should I include "node_modules" folder in project?

我使用 NPM 来维护我的 MVC 5 Web 项目中的前端依赖项。我对 NPM 的主要用途之一是获取事物的 Typescript 定义。

项目组织如下:

MySolution
|
|-- MySolution.Web
    |
    |-- Controllers
    |-- node_modules
    |-- Views
    |-- (etc...)

我想知道我是否应该将 "node_modules" 包含到项目中,以及是否应该将 "node_modules" 包含到源代码管理中。

我问的原因是,一切似乎都对它被排除在外感到满意(甚至是构建代理,它在编译之前执行 "NPM restore")。

但是,NCrunch 抱怨它找不到对我项目的 TypeScript 文件引用的各种类型的任何引用。

例如Admin.ts 参考了“/node_modules/@types/knockout/index.d.ts”

我认为将 "node_modules" 引入 Web 项目会解决它,但我不确定它是否正确。

不,您不应将其包含在源代码管理或项目中。

假设您从头开始进行完整克隆,首先您要做的是 npm install,它将恢复所有包并填充该文件夹。这与您不添加 NuGet 包等内容的原因完全相同。

该文件夹很容易变得非常大并延迟您的 CI/CD 管道。正如您自己所说,运行 npm install 无论如何都可以自动完成。例如,如果您为 Visual Studio 下载 git 忽略文件,它会带有类似默认情况下忽略的内容,这是有充分理由的。

就您的打字稿文件而言,这些文件也应该没问题。无论如何,在进行任何工作之前,您都将首先进行恢复,并且您可以使用 Visual Studio 代码之类的东西来处理您的前端文件,节点模块是否是您的解决方案的一部分并不重要。