获取requirejs.从Gruntfile配置
Fetch requirejs.config from Gruntfile
是否有办法将requirerequirements配置导入到我的grunt配置文件中?现在我必须保留两个相同的版本,一个在app/main.js
,一个在Gruntfile.js
:
module.exports = function(grunt) {
// can I import app/main.js requireConfig here?
var requireConfig = {
paths: {
jquery: 'lib/jquery'
// etc...
}
};
});
我的main.js看起来像这样:
requirejs.config({
paths: {
jquery: 'lib/jquery'
// etc...
}
});
define(['app'], function(app){
app.start();
});
您可以使用支持不同类型模块系统的标准模块模式,如下所示:
你需要这样的配置文件
amd-config.js
(function(factory) {
if (typeof define === 'function' && define.amd) {
// Register as an AMD module if available...
define('amd-config', [], factory());
} else if (typeof exports === 'object') {
// Next for Node.js, CommonJS, browserify...
module.exports = factory();
} else {
// setting browser global when none of the above are available
window.amdConfig = factory();
}
}
(function() {
var amdConfig = {
baseUrl: 'scripts',
paths: {
//Paths here
}
};
return amdConfig;
}));
在gruntfile中,你可以像其他模块一样要求。
var requireConfig = require('amd-config');
通常包括它,就像你在index.html中做的那样,在app.js之前加上script标签然后在app.js中像这样使用:
requirejs.config(window.amdConfig);
define(['app'], function(app){
app.start();
});
PS:在app.js中包含它有更干净的方法。
比第二更简洁,创建全局变量require,并在requires脚本之前包含脚本。Requirejs检查是否存在名为require包含对象的全局变量。如果它在那里,它被用作配置对象。所以你不需要调用需求。配置自己。
您可以像要求其他文件一样要求该文件。在这种情况下,它将被视为一个require模块,你将在require回调中接收对象。说出你的需求。配置如下。
' ' '
require(['amd-config'], function(amdConfig){
requirejs.config(amdConfig);
require(['app'], function(app){
app.start();
});
});
' ' '
如果您正在使用grunt来构建项目,那么您可以使用更简单的方法。您可以简单地使用:
options:{
mainConfigFile: "path/to/Config.js"
}
允许你使用:https://github.com/gruntjs/grunt-contrib-requirejs
您可以尝试这样做:
function getRequireConfig(requireFilePath) {
var config;
var configFileContent,
_require;
_require = require;
require = {
data: {},
config : function (configParam) {
this.data = configParam;
},
get : function () {
return this.data;
}
};
configFileContent = readFileSync(requireFilePath);
eval(configFileContent);
config = require.get();
require = _require;
return config;
}
它正在做的是:
- 覆盖需求定义到自定义实现
- 加载配置文件
- Eval使自定义实现的配置函数为 从数据中获取配置对象
相关文章:
- RequireJS向模块传递配置总是返回undefined
- 如何配置分析以将数据发送到我自己的服务器
- 扩展jQuery插件以更改配置
- webRTC错误未定义配置
- 如何配置WebStorm以正确格式化生成器函数
- Javascript配置服务器URL并将其存储
- Node Red在Admin UI中获取配置节点值
- AngularJS智能表全局配置实现
- react路由器使用简单的javascript路由器配置来处理不匹配的路径
- web配置http到https重定向异常
- 如何配置browserfy与Karma使用转换Stringify为Mustache模板
- Loopback AngularJS JavaScript SDK - Gruntfile plugin
- 将任何CDN配置为只传递一个文件,无论请求的url是什么
- 使用javascript配置文件作为handlebas博客模板,但配置不是't工作正常
- 我可以访问量角器配置文件中的参数吗
- 如何使用socket.io在meanjs项目中配置jshint
- Django无法通过urls.py配置找到djangular/app.js文件.如何进行故障排除
- Node/Grunt - Autoprefixer - 如何将配置添加到我的Gruntfile.js以及如何检查支持的浏
- 在Gruntfile中配置样式
- 获取requirejs.从Gruntfile配置