在我的应用程序中,我在index.html中有一个内联定义的命名模块:
<script>
define('config', {
mode: '...',
environment: '...',
apiUrl: '...',
rootPath: '...',
baseImageUrl: '...'
});
</script>
我需要在我的网页中定义它,因为我在使用环境变量时提取了一些内容。所以,在我的模块中,我可以包含'config':
define(['config', 'jquery'], function(config, $) { ... });
当我使用Grunt运行RequireJS构建(使用grunt-require,它使用r.js)时,它抱怨它没有找到config.js。我的构建配置如下所示:
{
baseUrl: 'js',
main: 'app/Main',
dir: 'js/build',
out: null,
modules: { ... },
paths: { ... },
shim: { ... }
}
当我建立时,我得到:
Error: Error: ENOENT, no such file or directory '/projects/projectname/js/build/config.js
如何允许将命名的内联定义模块与r.js构建结合使用?
答案 0 :(得分:1)
设置
paths: {
config : 'empty:'
}
构建配置文件中的应该将此模块排除在优化过程之外,因此会停止引发此错误。
但这有点棘手,因为这个选项通常用于排除第三方依赖项(例如,在开发基于Backbone的js库时,最好将lib与Backbone分开)