我正在整合一个使用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
。
这些可怕的黑客让我开始了,但我想知道是否有更好的方法。