首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Grunt/Yeoman多个Gruntfile.js文件

Grunt/Yeoman多个Gruntfile.js文件
EN

Stack Overflow用户
提问于 2013-08-27 14:56:30
回答 1查看 2.4K关注 0票数 0

我的目标是能够将我的项目构建到两个独立的构建文件夹中,每个文件夹都有自己的Grunt任务。

我注意到grunt-cli--gruntfile选项,它允许您指定要使用的另一个Gruntfile。到目前为止,我有一个Gruntfile.js工作得很好(接近约曼的股票)。另外,我还有一个Gruntfile2.js坐在旁边。

Gruntfile.js

代码语言:javascript
复制
var yeomanConfig = {
    app: 'app',
    dist: '../www_browser'
};

Gruntfile2.js

代码语言:javascript
复制
var yeomanConfig = {
    app: 'app',
    dist: '../www'
};

grunt build的目的是运行Gruntfile.js,并且运行得非常完美。

grunt build --gruntfile Gruntfile2.js的目的是运行Gruntfile2.js,并且这样做时会遇到一些问题。(应该构建到../www文件夹,而不是../www_browser文件夹)

--gruntfile指令为除grunt-usemingunt-contrib-htmlmin.以外的几乎所有任务构建到正确的文件夹。我之所以知道这一点,是因为在这里输出到控制台:

代码语言:javascript
复制
Running "usemin:css" (usemin) task
Processing as CSS - ../www_browser/styles/22f60055.main.css

Running "concurrent:dist" (concurrent) task

Running "htmlmin:dist" (htmlmin) task
File ../www_browser/404.html created.
File ../www_browser/index.html created.

您将在控制台输出中注意到../www_browser,。所有其他任务都运行在预期的./www文件夹中。

这是usemin缓存的问题吗?咕噜缓存的事?还是有些任务只是简单地从默认的Gruntfile.js运行,而不管--gruntfile Gruntfile2.js指令如何?

现在,我已经放弃了尝试从一个Gruntfile中执行多个目标。Yeoman的Gruntfile.js中有太多的依赖项,它们还不支持多个构建目标,我花了12个小时才使用这种方法。

版本信息

代码语言:javascript
复制
$: grunt --version
grunt-cli v0.1.9
grunt v0.4.1

$: npm --version
1.2.25

$: yo --version
1.0.3

package.json

代码语言:javascript
复制
{
  "name": "myapp",
  "version": "0.0.0",
  "dependencies": {},
  "devDependencies": {
    "grunt": "~0.4.1",
    "grunt-contrib-copy": "~0.4.1",
    "grunt-contrib-concat": "~0.1.3",
    "grunt-contrib-coffee": "~0.6.5",
    "grunt-contrib-uglify": "~0.2.0",
    "grunt-contrib-compass": "~0.2.0",
    "grunt-contrib-jshint": "~0.4.1",
    "grunt-contrib-cssmin": "~0.6.0",
    "grunt-contrib-connect": "~0.2.0",
    "grunt-contrib-clean": "~0.4.0",
    "grunt-contrib-htmlmin": "~0.1.3",
    "grunt-bower-requirejs": "~0.4.1",
    "grunt-contrib-requirejs": "~0.4.0",
    "grunt-contrib-imagemin": "~0.1.3",
    "grunt-contrib-watch": "~0.4.0",
    "grunt-rev": "~0.1.0",
    "grunt-usemin": "~0.1.10",
    "grunt-mocha": "~0.3.0",
    "grunt-open": "~0.2.0",
    "grunt-svgmin": "~0.1.0",
    "grunt-concurrent": "~0.1.0",
    "matchdep": "~0.1.1",
    "connect-livereload": "~0.2.0"
  },
  "engines": {
    "node": ">=0.8.0"
  }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-27 20:44:14

看起来,您使用的是较早版本的grunt -并发,它似乎没有将咕噜标志传递给子进程。

见此处:https://github.com/sindresorhus/grunt-concurrent/blob/v0.1.0/tasks/concurrent.js#L11

在当前版本的插件上,将传递标志,请参见此处:https://github.com/sindresorhus/grunt-concurrent/blob/v0.3.1/tasks/concurrent.js#L22

因此,我建议更新您的版本的grunt-并发:

npm install grunt-concurrent@latest --save-dev

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18468938

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档