【问题标题】:How to install grunt outside of a project and run tasks from the project directory如何在项目外部安装 grunt 并从项目目录运行任务
【发布时间】:2015-11-13 15:34:27
【问题描述】:

我在看这个系列教程here,可以看到grunt(不是grunt-cli)文件存放在项目根目录下。

我发现这通常是这种情况,但我想将我的文件放在其他地方。

有没有办法做到这一点。显然,我可以运行 init 以在 /grunt 中创建 package.json 文件并在那里进行安装,但是告诉它如何与我的项目 /root/project 交互会相对容易。

【问题讨论】:

  • 简单的问题来理解你的问题。为什么要将 grunt 任务放在项目之外?当您的意思是外部时,您的意思是例如在 git 存储库之外?您能否在您的问题中添加您想要的结构?
  • 我认为必须为每个项目进行 grunt 安装。我只想在我的根目录中安装一个。
  • 如果 grunt 任务不在 git 存储库中,您的团队成员将如何与您合作?如果您为 3 个不同的项目编写任务,您如何编写高效且干净的任务?这显然是错误的方式。我建议您为每个项目编写 grunt 任务。阅读这篇文章以了解如何组织您的任务:Organize your grunt tasks :)
  • 我只有一个项目。加上 grunt 使用的两个配置文件,我确实推送到我的仓库。它们以符号方式链接。
  • 好的,我明白了。那你的问题是什么?

标签: javascript node.js gruntjs


【解决方案1】:

这是您的结构的一个潜在示例:

main-folder
├── package.json
├── Gruntfile.js
├── grunt
│   ├── config.js
│   ├── config
│   │   │   ├── copy.js
│   │   │   ├── sass.js
│   │   │   ├── sync.js
│   │   │   ├── linkAsset.js
│   │   │   └── uglify.js
│   ├── register
│   │   │   ├── compileAssets.js
│   │   │   ├── linkAssets.js
│   │   │   ├── build.js
│   │   │   └── buildProd.js
├── project-1
│   └── folders and files ...
├── project-2
│   └── folders and files ...
  • package.json :包含所有 grunt-plugins 依赖项和其他有用的 npm 模块
  • Gruntfile.js :加载和配置grunt/configgrunt/register 文件夹中的所有任务

如果您想了解更多信息来设置此 grunt 配置,请阅读此内容:How to create and organise config and register grunt tasks

配置文件

我建议您也使用配置文件(例如main-folder/grunt/config.js)文件来注册一些快捷方式、变量,以使您的繁重任务更加动态。

例子:

var version = '0.1.0';
var project1Dir = 'project-1';
var project2Dir = 'project-2';

module.exports.version = version;
module.exports.project1Dir = project1Dir;
module.exports.project2Dir = project2Dir;

并在每个任务中导入此配置:var config = require('../config');。如果您重命名文件夹project1,将很容易重构代码。

运行任务

现在,当您在目录(main-folder/project1main-folder/project2)中工作并输入 grunt 命令时,使用 b 标志告诉 grunt 您的 Gruntfile.js 文件在哪里。

例子:

grunt -b ../ build

您也可以在代码中配置此行为。阅读 Grunt 文档了解更多信息:Grunt CLI - b flag

【讨论】:

  • 谢谢老兄,我伏特加喝多了,明天再看。
猜你喜欢
  • 1970-01-01
  • 2011-04-21
  • 1970-01-01
  • 2020-02-05
  • 2015-01-13
  • 1970-01-01
  • 2012-09-13
  • 2015-05-02
  • 1970-01-01
相关资源
最近更新 更多