我正在集成一个 ember 项目以使用ember-tools,因为我想要好的构建工具。我的项目也使用epf,当我尝试将其包含epf.js
为库时遇到了问题。我的直觉只是把ember-tools 为我生成epf.js
的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;
and var Ember = window.Em
。稍后在文件中有一个名为的函数require
,我将其重命名为requireEPF
.
这些可怕的黑客让我开始了,但我想知道是否有更好的方法。