我使用NPM来维护我的MVC 5 Web项目中的前端依赖项。我对NPM的一个关键用途是获取Typescript定义。
该项目的组织方式如下:
MySolution
|
|-- MySolution.Web
|
|-- Controllers
|-- node_modules
|-- Views
|-- (etc...)
我想知道的是,我是否应该在项目中包含“node_modules”,以及是否应该将“node_modules”包含在源代码管理中。
我问的原因是,一切看起来都很高兴它被排除在外(甚至构建代理,在编译之前进行“NPM恢复”)。
但是,NCrunch抱怨它找不到我的项目的TypeScript文件引用的各种类型的引用。
例如。 Admin.ts引用“/node_modules/@types/knockout/index.d.ts”
我认为将“node_modules”引入Web项目会修复它,但我不确定它是否正确。
不,您不应该在源代码管理或项目中包含它。
假设你从头开始做一个完整的克隆,你要做的第一个是npm安装,它将恢复所有包并填充该文件夹。这就是为什么你不添加像NuGet包这样的东西的原因。
该文件夹很容易变大,延迟CI / CD管道。正如你自己所说,运行npm install无论如何都可以自动完成。例如,如果你为Visual Studio下载一个git ignore文件,它会带有像默认情况下忽略的那样的东西。
就你的打字稿文件而言,那些也应该没问题。在进行任何工作之前,您首先要进行恢复,并且可以使用Visual Studio Code之类的东西来处理前端文件,并且节点模块是否是解决方案的一部分并不重要。