4
我的項目中有一些文件,我想移出正常的應用程序樹並只在某些情況下加載。目前我使用broccoli-stew
來移動文件和broccoli-babel-transpiler
來傳輸目標文件。但是,當我這樣做時,我最終在導入的文件上添加了一個額外的default
對象。正確babel用ember-cli-build編譯一個文件
這段代碼被添加到頂部
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var _Ember = _interopRequireDefault(_ember);
,這使我有寫有作爲Ember["default"].Object
等來燼引用源文件想沒有在源文件中的奇引用使其他開發人員更難理解。
這是我目前ember-cli-build.js
文件
/* global require, module */
var stew = require('broccoli-stew');
var esTranspiler = require('broccoli-babel-transpiler');
var EmberApp = require('ember-cli/lib/broccoli/ember-app');
module.exports = function(defaults) {
var app = new EmberApp(defaults, {
storeConfigInMeta: false
});
var additionalTrees = [];
var appTree = app.appAndDependencies();
if (EmberApp.env() !== "production") {
var jQuery = stew.find(appTree, "bower_components/jquery/dist/jquery.min.js");
jQuery = stew.mv(jQuery, "bower_components/jquery/dist/jquery.min.js", "assets/jquery.js");
additionalTrees.push(jQuery);
}
function extractRouter(fileName) {
var router = stew.find(appTree, 'mobile-web/'+ fileName + '.js');
router = esTranspiler(router, {
modules: "amd",
moduleIds: true,
moduleId: "mobile-web/router"
});
router = stew.mv(router, 'mobile-web/'+ fileName + '.js', 'assets/'+ fileName + '.js');
additionalTrees.push(router);
}
extractRouter('router');
extractRouter('secure-router');
return app.toTree(additionalTrees);
};
我認爲這是'babel v5'有效。文檔鏈接已過時,但代碼鏈接可用於[最新v5發行版](https://github.com/babel/babel/blob/v5.8.38/packages/babel/src/transformation/modules/ AMD-strict.js) – morhook