Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用brocoli.js将一个简单的文件树转换为concat_Javascript_Node.js_Npm - Fatal编程技术网

Javascript 如何使用brocoli.js将一个简单的文件树转换为concat

Javascript 如何使用brocoli.js将一个简单的文件树转换为concat,javascript,node.js,npm,Javascript,Node.js,Npm,我正试图改变主意,但遇到了一个错误。如果你查看我的回购协议,你会发现我有一个类似如下的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 = pi

我正试图改变主意,但遇到了一个错误。如果你查看我的回购协议,你会发现我有一个类似如下的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)

从长远来看,我希望以此作为构建ember.js应用程序的起点,因此我创建了一个新的应用程序。如果你去那里,你可以看到我的文件结构。你知道我为什么会犯这个错误吗?

过去几天我自己一直在和花椰菜搏斗。这对我来说也是新鲜事,但我克隆了您的回购协议,并通过执行以下操作使
西兰花服务
发挥作用:

1) 我在
loader/loader.js
创建了一个“loader.js”文件。js文件包含ES6模块加载器polyfill代码,允许在非ES6浏览器中加载ES6模块。我从花椰菜样本应用程序中获取了文件:

2) 我将加载程序注入到应用程序树中,并在
compileES6
config中引用它。(此选项是错误中的
未定义的
值。)

下面是为我成功构建的更新的
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'});