我使用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项目会修复它,但我不确定它是否正确。
答案 0 :(得分:0)
不,您不应将此包含在源代码管理或项目中。
假设你从头开始做一个完整的克隆,你要做的第一个是 npm install ,这将恢复所有包并填充该文件夹。这与你不添加像NuGet包这样的东西完全相同。
该文件夹很容易变得很大并且会延迟您的CI / CD管道。正如你自己所说,运行 npm install 是可以自动完成的。例如,如果您为Visual Studio下载一个git ignore文件,那么默认情况下它会被忽略,并且有充分的理由。
就你的打字稿文件而言,那些也应该没问题。在进行任何工作之前,您将首先进行恢复,并且可以使用Visual Studio Code之类的东西来处理前端文件,并且节点模块是否是解决方案的一部分并不重要。