使用风帆时,我是否需要在 package.json 中明确发出咕噜声

Do I need explicitly grunt in package.json when using sails

我有 sails 应用程序和主程序 package.json,如下所示。 如果帆也有,我真的需要所有这些咕噜声吗?特别是如果 sails 在版本 0.4.5 中有 grunt 而这里我有 0.4.2 无论如何,在主应用程序 package.json 中没有 grunt 条目。 sails lift后出现错误。这看起来有些矛盾。

{
  ...
  "dependencies": {
    "ejs": "~0.8.4",
    "grunt": "0.4.2",
    "grunt-contrib-clean": "~0.5.0",
    "grunt-contrib-coffee": "~0.10.1",
    "grunt-contrib-concat": "~0.3.0",
    "grunt-contrib-copy": "~0.5.0",
    "grunt-contrib-cssmin": "~0.9.0",
    "grunt-contrib-jst": "~0.6.0",
    "grunt-contrib-less": "0.11.1",
    "grunt-contrib-sass": "^0.9.2",
    "grunt-contrib-uglify": "~0.4.0",
    "grunt-contrib-watch": "~0.5.3",
    "grunt-sails-linker": "~0.9.5",
    "grunt-sync": "~0.0.4",
    "include-all": "~0.1.3",
    "mongodb": "^2.0.41",
    "rc": "~0.5.0",
    "sails": "git://github.com/balderdashy/sails.git",
    "sails-disk": "~0.10.0",
    "sails-mongo": "^0.11.2"
  }
  ...
}

是的,你必须保留它们。如果你想 g运行t 集成,有什么错误 。尝试删除它们并删除您项目的 node_modules 文件夹和 运行 npm install,您将看到您将无法 运行 g运行 t 任务像 default 因为所有需要的插件都没有在 package.json 中注册。您是项目的创建者,因此当您使用 sails new app 创建应用程序时,项目的所有 npm 依赖项都是别名,并指向全局安装的 sails 节点模块的 node_modules 文件夹。

我举个例子来说明问题: 所有依赖项都没有集成到版本控制系统(最佳实践),那么 node_modules 文件夹将被忽略。如果协作者拉取了项目,他必须 运行 npm install 安装所有项目依赖项,如果你从 package.json 中删除了所有 g运行t 插件,他就赢了无法 运行 g运行t 任务,因为所有需要的插件都没有在 package.json.

中注册

如果您想禁用 g运行t 集成,请将其添加到您的 .sailsrc 文件中:

"hooks": {
    "grunt": false
}

要了解 g运行t 如何集成到 sails,我建议您阅读文档,尤其是这些部分:
- disabling-grunt
- task-automation
- default-tasks