【问题标题】:Visual Studio MVC 5 web project - should I include "node_modules" folder in project?Visual Studio MVC 5 web 项目 - 我应该在项目中包含“node_modules”文件夹吗?
【发布时间】:2018-05-16 00:08:28
【问题描述】:

我使用 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”

我认为在 web 项目中引入“node_modules”可以解决这个问题,但我不确定它是否正确。

【问题讨论】:

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


    【解决方案1】:

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

    假设你从头开始做一个完整的克隆,你首先要做的是一个 npm install 它将恢复所有包并填充该文件夹。这与您也不添加 NuGet 包之类的东西的原因完全相同。

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

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

    【讨论】:

    • 谢谢 - 把它带进来感觉不对,但无论如何我都想检查一下。我会尝试另一种方式来满足 NCrunch。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-17
    • 1970-01-01
    • 2021-07-16
    • 1970-01-01
    • 2010-10-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多