Gulp / Bower - 维护一致性

10

我感觉自己在这里漏掉了一些愚蠢的东西,有人能解释一下为什么我不能将 .bowerrc 文件引入 gulp 吗?文件结构和过程应该非常简单:

文件树

global.js

"use strict";

var gulp = require('gulp');
var bowerRC = require('../.bowerrc');

module.exports.getBowerRC = function() {
    return console.log(JSON.stringify(bowerRC));
}

.bowerrc

{
    "directory": "./resources/bower_components/",
    "analytics": false
}

我想做的是在 gulp 中将“directory”的值作为全局变量引入。这样,gulp 就可以自动使用该值来执行任何任务/插件,并保持DRY概念而不破坏 bower shell 本身。

问题是当我从任务中调用函数时,它会出现错误。奇怪的是,如果我将变量 bowerRC 切换到指向 bower.json,那么对于那个部分它就能正常工作... 有什么想法吗?

我使用的是 node v0.12.0,gulp v3.9.0,bower v1.4.1。

编辑:在 Windows7 64位上运行,我很抱歉没有选择。

编辑2:升级到 node 0.12.4,没有改变,我相信这与如何需要文件有关,因为即使我注释掉函数,错误仍然存在。

console


1
我已经解决了其中的一部分问题,因为.bowerrc没有扩展名,所以node将其读取为.js文件而不是JSON,这就是为什么会出现解析错误...现在如果我能弄清楚如何使它正常工作就好了... - marblewraith
1个回答

6

已经想通了,修改后的代码如下:

"use strict";

var gulp = require('gulp');
var fs = require('fs');

module.exports.getBowerRC = function ()
{
    var bowerRC = JSON.parse(fs.readFileSync('./.bowerrc', 'utf8'));
    return console.log(bowerRC);
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接