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

时间:2018-05-15 15:53:40

标签: asp.net-mvc npm asp.net-mvc-5 ncrunch

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

项目的组织方式如下:

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

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

我问的原因是,一切看起来都很高兴它被排除在外(甚至构建代理,在编译之前进行“NPM恢复”)。

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

E.g。 Admin.ts引用“/node_modules/@types/knockout/index.d.ts”

我认为将“node_modules”引入Web项目会修复它,但我不确定它是否正确。

1 个答案:

答案 0 :(得分:0)

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

假设你从头开始做一个完整的克隆,你要做的第一个是 npm install ,这将恢复所有包并填充该文件夹。这与你不添加像NuGet包这样的东西完全相同。

该文件夹很容易变得很大并且会延迟您的CI / CD管道。正如你自己所说,运行 npm install 是可以自动完成的。例如,如果您为Visual Studio下载一个git ignore文件,那么默认情况下它会被忽略,并且有充分的理由。

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