javascript - 如果模块位于不同的目录中,如何在 gruntfile 中使用 loadNpmTask 加载任务

标签 javascript gruntjs gruntfile

尝试从外部目录加载模块:grunt.loadNpmTasks('grunt-express-server');

得到一个错误:任务....不存在。你加载了吗?

目录结构:

client/
  node_modules
  gruntfile
dev_server/
  node_modules/
    grunt-express-server

所以我的问题是:如何使用存储在外部目录中的节点模块运行 grunt 任务?

最佳答案

您将需要使用 grunt.task.loadtasks将其指向您要加载任务的任务目录。

在你的情况下:

grunt.loadTasks('../dev_server/node_modules/grunt-express-server/tasks');

如果您在 github 上查看 grunt 的 master,在 task.js 的第 325 行它需要位于您作为参数传递的文件路径中的任务文件 (.../tasks/express.js)。

// Load taskfile.
fn = require(path.resolve(filepath))

编辑

如果您想知道是否可以将 grunt 的路径重新定位到 node_modules,请查看此 question

关于javascript - 如果模块位于不同的目录中,如何在 gruntfile 中使用 loadNpmTask 加载任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30175742/

相关文章:

javascript - 如何在不删除文本区域和复制文本的情况下复制到剪贴板

javascript - 在传单中实现Ilayer接口(interface)

javascript - SVG 具有黑色填充而不是映射颜色

javascript - OOP 事件中的 "this"

gruntjs - gulp 中的 load-grunt-config 等效模块

javascript - 让 Grunt 使用 HTML 任务创建新文件而不是重写

javascript - 为什么 Grunt Uglify 保留我的函数名称?

javascript - 启动 Node 调试服务器后grunt停止输出信息

javascript - Grunt 'grunt-bower-concat',忽略 mainFiles 选项

gruntjs - 如何为 Grunt 设置环境?