如何使用ember-tools在项目中包含epf.js?

时间:2013-08-14 03:50:29

标签: optimization requirejs integration epf ember-tools

我正在整合一个使用ember-tools的ember项目,因为我想要很好的构建工具。我的项目也使用epf,当我尝试将epf.js作为库包含时遇到了问题。我的直觉只是将epf.js归入ember-tools为我生成的vendor/文件夹......但这不起作用。当我运行ember build时,它会吐出以下内容:

Change detected: !config/app.js

   created: js/templates.js
   created: js/index.js
   created: js/application.js
build time: 493 ms
 Error: Cannot find module '/lib/version.js'

我认为这种情况正在发生,因为epf.js使用commonjs语法,如

 require.define('/lib/index.js', function (module, exports, __dirname, __filename) {
        global.Ep = Ember.Namespace.create();
        require('/lib/version.js', module);

和ember-tools'build命令认为这些require语句声明它应该构建的模块。

使用commonjs语法时,这是一般问题吗?是否有一些简单的修复,允许我使用ember-tools的构建命令来包含epf.js,或者我应该在某个地方保留一个单独的lib文件夹,只需在<script>中添加index.html标记?

修改

epf.js开始,

(function(global) {

并将Ep对象导出为

global.Ep = Ember.Namespace.create();

这导致了问题,因此我添加了global = window;var Ember = window.Em。稍后在文件中有一个名为require的函数,我将其重命名为requireEPF

这些可怕的黑客让我开始了,但我想知道是否有更好的方法。

0 个答案:

没有答案