问题描述
我一直在遵循本指南来让 gruntfile 与 Visual Studio 中的任务运行器资源管理器一起工作:Use Grunt in ASP.NET Core。
如果我在 webapp 项目的根目录中有 Grunt.js、package.json 和 node_modules,那么这一切正常,没有问题。
但是当从 Visual Studio 提供的模板以 react 或 angular 生成 SPA 时,它会将 SPA 放在 ClientApp 子文件夹中,这意味着我的 package.json 和 node_modules 位于 /ClientApp 中。
如果我将 Gruntfile.js 放在 /ClientApp 中,那么 Visual Studio / task runner 资源管理器找不到它,只有放在根目录中才能找到它。
如果我将 Gruntfile.js 放在根目录中,那么任务运行器资源管理器会检测到它,但是在尝试加载 grunfile.js 时,我收到一条错误消息,指出“grunt 尚未在本地安装”,这是因为它正在寻找grunt 安装在 /node_modules 而不是 /ClientApp/node_modules 实际所在的位置。
我可以通过在根文件夹中放置另一个 package.json 来解决这个问题,只将 devDependencies 设置为 grunt 和相关的依赖项,但是在我的项目中有两个 package.json 和 node_modules 文件夹的实例是一个非常不优雅的解决方案,这可能会在我团队中的其他开发人员之间造成混淆,除非我们向所有人清楚地解释这只是让 Visual Studio 繁重工作的一种解决方法。
有没有办法让 package.json 和 node_modules 在 /ClientApp 中只有一个副本,并且让 grunt.js 与 Visual Studio 一起工作? Visual Studio 自己的用于创建 SPA 的模板将 SPA 放在 /ClientApp 下,因此我们肯定必须有一种方法来使用 grunt.js,而不必进行肮脏的黑客攻击。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)