如何使用broccoli.js获得一个简单的文件树连接

我试图让我的头在broccoli.js,但遇到了一个错误。 如果你看看我的GitHub仓库,你会看到我有一个brocfile.js,看起来像这样:

brocfile.js

var compileES6 = require('broccoli-es6-concatenator') var pickFiles = require('broccoli-static-compiler'); var mergeTrees = require('broccoli-merge-trees') var app = 'app' app = pickFiles(app,{ srcDir: '/', destDir: 'app-kit' }) var appJS = compileES6(app, { inputFiles: ['/app-kit/**/*.js'], outputFile: '/dist/app.js' }) module.exports = mergeTrees([appJS]); 

我得到这个错误:

 Built with error: Error: ENOENT, no such file or directory 'tmp/static_compiler-tmp_dest_dir-JjclDVEm.tmp/undefined' at Object.fs.statSync (fs.js:684:18) at addLegacyFile (/Users/cully/Sites/ember-todo/node_modules/broccoli-es6-concatenator/index.js:130:44) at /Users/cully/Sites/ember-todo/node_modules/broccoli-es6-concatenator/index.js:47:5 at invokeCallback (/Users/cully/Sites/ember-todo/node_modules/broccoli/node_modules/rsvp/dist/commonjs/rsvp/promise.js:228:21) at publish (/Users/cully/Sites/ember-todo/node_modules/broccoli/node_modules/rsvp/dist/commonjs/rsvp/promise.js:176:9) at publishFulfillment (/Users/cully/Sites/ember-todo/node_modules/broccoli/node_modules/rsvp/dist/commonjs/rsvp/promise.js:312:5) at flush (/Users/cully/Sites/ember-todo/node_modules/broccoli/node_modules/rsvp/dist/commonjs/rsvp/asap.js:41:9) at process._tickCallback (node.js:415:13) at Function.Module.runMain (module.js:499:11) at startup (node.js:119:16) 

从长远来看,我想用这个作为构buildember.js应用程序的出发点,所以我创build了一个github仓库。 如果你去那里,你可以看到我的文件结构。 任何想法,为什么我得到这个错误?

我在过去的几天里一直和西兰花一起摔跤。 这对我来说也是新鲜的,但是我克隆了你的回购,并且通过下面的做法得到了broccoli serve

1)我在loader/loader.js创build了一个“loader.js”文件。 loader.js文件包含ES6模块加载器填充代码,以允许ES6模块加载到非ES6浏览器中。 我从Broccoli示例应用程序中抓取该文件: https : //github.com/joliss/broccoli-sample-app/blob/master/vendor/loader.js

2)我将加载器注入到应用程序树中,并在compileES6configuration中引用它。 (这个选项是你错误中undefined值。)

这是为我成功构build的更新的brocfile.js

 //brocfile.js var compileES6 = require('broccoli-es6-concatenator'); var pickFiles = require('broccoli-static-compiler'); var mergeTrees = require('broccoli-merge-trees'); var app = 'app'; app = pickFiles(app,{ srcDir: '/', destDir: 'app-kit' }); // Reference to ES6 loader var loader = "loader"; // Squash the loader and app trees into one var sourceTrees = [app, loader]; sourceTrees = new mergeTrees(sourceTrees); var appJS = compileES6(sourceTrees, { loaderFile: 'loader.js', // This required option was undefined before inputFiles: ['app-kit/**/*.js'], outputFile: '/dist/app.js' }); module.exports = mergeTrees([appJS]); 

我希望这可以帮助你进入你的西兰花冒险的下一步。

你可以使用西兰花连接 ,然后:

  emberTests = concatFilter(emberTests, {inputFiles: ['**/*.js'], outputFile:'/tests.js'}); templates = concatFilter(templates, {inputFiles: ['**/*.handlebars'], outputFile:'/templates.js'}); trees = concatFilter(trees, {inputFiles: ['**/*.js'], outputFile:'/app.js'});