0

我在前端和 grunt 任务中需要一个小配置文件。

js/config.js:

define(function() {
  return [
    {
      id: 'demo',
      displayName: 'Demo'
    }
  ];
});

我可以毫无问题地在前端加载文件,它也可以在节点中工作。var requirejs = require('requirejs');

requirejs.config({
  nodeRequire: require,
  baseUrl: './js'
});   
var config = requirejs('config')

但是,当我尝试在 grunt 任务中加载相同的文件时,它返回未定义:

requirejs.config({
  nodeRequire: require,
  baseUrl: './js'
});   
grunt.registerTask('lala', function  () {
  var config = requirejs('config')
});
4

2 回答 2

1

问题是我需要函数之外的requireJs module.exports。所以这毕竟有效:

module.exports = function(grunt) {

  var requirejs = require('requirejs');

  requirejs.config({
    nodeRequire: require,
    baseUrl: './js/cfe/app/platforms/as'
  });

  grunt.registerTask('lala', function  () {
    var config = requirejs('config')
  });
}
于 2013-04-19T08:33:46.133 回答
0

这段代码对我有用。首先我安装了requirejs:

cd /path/to/code/directory
npm install requirejs

然后在我的 app.js 中:

var requirejs = require('requirejs');

requirejs.config({
  nodeRequire: require,
  baseUrl: './js'
});   

var config = requirejs('config');
console.log(config);

在 js/config.js 中:

define(function() {
  return [
    {
      id: 'demo',
      displayName: 'Demo'
    }
  ];
});

当我运行它时,我得到了正确的结果:

$ node app.js
[ { id: 'demo', displayName: 'Demo' } ]

我正在使用节点 v0.10.1。

于 2013-04-18T18:28:23.197 回答