broccolijs / broccoli-merge-trees Goto Github PK
View Code? Open in Web Editor NEWBroccoli plugin to merge multiple trees into one
License: MIT License
Broccoli plugin to merge multiple trees into one
License: MIT License
I try to rename and remove some files in the Ember-cli treeForPublic
hook. I don't 100% understand this and added return mergeTrees([publicFiles], { overwrite: true });
to: https://github.com/martinic/ember-cli-deploy-build-plus/blob/robots/index.js#L14-L23
but this does not work. tree
is always undef. The overwrite: true
does not work. Is there an example that overwrites and perhaps deletes files? Any help is appreciated. See also http://discuss.emberjs.com/t/different-robots-txt-for-production-and-staging/9358/14
Hi my team recently upgraded to 3.5.1 and we started seeing this warning:
WARNING: Invalid Broccoli2 node detected, falling back to broccoli-builder. Broccoli error:
---------------
Object: The .read/.rebuild API is no longer supported as of Broccoli 1.0. Plugins must now derive from broccoli-plugin. https://github.com/broccolijs/broccoli/blob/master/docs/broccoli-1-0-plugin-api.md
used as input node to BroccoliMergeTrees (TreeMerger (app))
-~- created here: -~-
at BroccoliMergeTrees.Plugin (/Users/wcanavan/code/Mariana-Django/ui/node_modules/broccoli-plugin/index.js:7:31)
at new BroccoliMergeTrees (/Users/wcanavan/code/Mariana-Django/ui/node_modules/ember-cli/node_modules/broccoli-merge-trees/index.js:16:10)
at Function.BroccoliMergeTrees [as _upstreamMergeTrees] (/Users/wcanavan/code/Mariana-Django/ui/node_modules/ember-cli/node_modules/broccoli-merge-trees/index.js:10:53)
at mergeTrees (/Users/wcanavan/code/Mariana-Django/ui/node_modules/ember-cli/lib/broccoli/merge-trees.js:85:33)
at EmberApp.getAppJavascript (/Users/wcanavan/code/Mariana-Django/ui/node_modules/ember-cli/lib/broccoli/ember-app.js:1022:21)
at EmberApp.toArray (/Users/wcanavan/code/Mariana-Django/ui/node_modules/ember-cli/lib/broccoli/ember-app.js:1623:12)
at EmberApp.toTree (/Users/wcanavan/code/Mariana-Django/ui/node_modules/ember-cli/lib/broccoli/ember-app.js:1750:36)
at module.exports (/Users/wcanavan/code/Mariana-Django/ui/ember-cli-build.js:138:16)
at Builder.readBuildFile (/Users/wcanavan/code/Mariana-Django/ui/node_modules/ember-cli/lib/models/builder.js:52:14)
at Builder.setupBroccoliBuilder (/Users/wcanavan/code/Mariana-Django/ui/node_modules/ember-cli/lib/models/builder.js:66:22)
at new Builder (/Users/wcanavan/code/Mariana-Django/ui/node_modules/ember-cli/lib/models/builder.js:32:10)
at ServeTask.run (/Users/wcanavan/code/Mariana-Django/ui/node_modules/ember-cli/lib/tasks/serve.js:45:55)
at Promise.resolve.then (/Users/wcanavan/code/Mariana-Django/ui/node_modules/ember-cli/lib/models/command.js:243:46)
at tryCatcher (/Users/wcanavan/code/Mariana-Django/ui/node_modules/ember-cli/node_modules/rsvp/dist/rsvp.js:323:19)
at invokeCallback (/Users/wcanavan/code/Mariana-Django/ui/node_modules/ember-cli/node_modules/rsvp/dist/rsvp.js:495:31)
at /Users/wcanavan/code/Mariana-Django/ui/node_modules/ember-cli/node_modules/rsvp/dist/rsvp.js:559:14
at flush (/Users/wcanavan/code/Mariana-Django/ui/node_modules/ember-cli/node_modules/rsvp/dist/rsvp.js:2402:5)
at process._tickCallback (internal/process/next_tick.js:61:11)
-~- (end) -~----------------
[API] Warning: The .read and .rebuild APIs will stop working in the next Broccoli version
[API] Warning: Use broccoli-plugin instead: https://github.com/broccolijs/broccoli-plugin
[API] Warning: Plugin uses .read/.rebuild API: [object Object]
I've read through ember-template-lint/ember-cli-template-lint#345, ember-cli/ember-cli#8198, broccolijs/broccoli#374, & ember-cli/ember-cli#8163 and tried upgrading or removing just about everything mentioned in any of them that is relevant to my application. Still, I haven't been able to figure out the source of the warning.
Is there anything in our package.json that is a known issue?
{
"devDependencies": {
"@ember/jquery": "^0.5.2",
"@ember/optional-features": "^0.6.3",
"babel-plugin-transform-decorators-legacy": "1.3.4",
"babel-plugin-transform-object-rest-spread": "6.26.0",
"broccoli-asset-rev": "^2.7.0",
"broccoli-file-creator": "1.1.1",
"c3": "0.4.21",
"chalk": "2.3.2",
"common-tags": "1.7.2",
"d3": "3.5",
"dotenv": "5.0.1",
"ember-ajax": "^3.1.0",
"ember-auto-import": "^1.2.13",
"ember-changeset": "1.3.0",
"ember-changeset-validations": "1.2.8",
"ember-cli": "~3.5.1",
"ember-cli-app-version": "^3.2.0",
"ember-cli-autoprefixer": "0.8.1",
"ember-cli-babel": "^6.16.0",
"ember-cli-clock": "1.0.5",
"ember-cli-code-coverage": "0.4.2",
"ember-cli-content-security-policy": "1.0.0",
"ember-cli-date-textbox": "1.1.0",
"ember-cli-dependency-checker": "^3.0.0",
"ember-cli-deploy": "1.0.2",
"ember-cli-deploy-build": "1.1.1",
"ember-cli-deploy-s3": "1.2.0",
"ember-cli-eslint": "4.2.3",
"ember-cli-file-saver": "1.2.2",
"ember-cli-head": "0.4.0",
"ember-cli-htmlbars": "^3.0.0",
"ember-cli-htmlbars-inline-precompile": "^1.0.3",
"ember-cli-inject-live-reload": "^1.8.2",
"ember-cli-inline-content": "0.4.1",
"ember-cli-mirage": "0.4.3",
"ember-cli-moment-shim": "3.5.0",
"ember-cli-release": "1.0.0-beta.2",
"ember-cli-sass": "7.1.7",
"ember-cli-shims": "^1.2.0",
"ember-cli-sri": "^2.1.1",
"ember-cli-string-helpers": "1.7.0",
"ember-cli-stylelint": "2.2.0",
"ember-cli-template-lint": "^1.0.0-beta.1",
"ember-cli-uglify": "^2.1.0",
"ember-component-attributes": "^0.1.1",
"ember-component-css": "0.6.3",
"ember-composable-helpers": "2.1.0",
"ember-concurrency": "0.8.27",
"ember-data": "~3.5.0",
"ember-data-change-tracker": "0.7.3",
"ember-did-change-attrs": "0.0.2",
"ember-elsewhere": "1.0.4",
"ember-exam": "1.0.0",
"ember-export-application-global": "2.0.0",
"ember-flatpickr": "2.3.0",
"ember-freestyle": "0.10.0",
"ember-fullcalendar": "1.8.0",
"ember-get-config": "0.2.4",
"ember-in-viewport": "3.0.0",
"ember-inflector": "3.0.0",
"ember-lifeline": "2.0.0",
"ember-light-table": "1.13.2",
"ember-link-action": "0.0.38",
"ember-load-initializers": "^1.1.0",
"ember-lodash": "4.18.0",
"ember-moment": "7.6.0",
"ember-multiselect-checkboxes": "0.11.1",
"ember-native-dom-helpers": "0.6.2",
"ember-power-select": "2.0.9",
"ember-power-select-typeahead": "0.7.2",
"ember-power-select-with-create": "0.6.1",
"ember-promise-helpers": "1.0.6",
"ember-qunit": "^3.4.1",
"ember-qunit-nice-errors": "1.2.0",
"ember-radio-button": "1.2.4",
"ember-resolver": "^5.0.1",
"ember-responds-to": "1.5.0",
"ember-responsive": "2.0.8",
"ember-route-action-helper": "2.0.6",
"ember-simple-auth": "1.8.2",
"ember-sinon": "1.0.1",
"ember-sinon-qunit": "2.1.0",
"ember-sortable": "1.11.2",
"ember-source": "~3.5.1",
"ember-test-selectors": "0.3.8",
"ember-tooltips": "2.11.1",
"ember-truth-helpers": "2.0.0",
"ember-useragent": "0.5.0",
"ember-websockets": "7.1.1",
"ember-window-mock": "0.4.0",
"eslint": "4.18.2",
"eslint-config-airbnb-base": "11.3.2",
"eslint-config-ember": "0.3.0",
"eslint-config-mariana": "git+https://[email protected]/Mariana-Tek/eslint-config-mariana.git#v1.0.1",
"eslint-plugin-compat": "2.2.0",
"eslint-plugin-ember": "^5.2.0",
"eslint-plugin-import": "2.9.0",
"eslint-plugin-mariana-tek": "git+https://[email protected]/Mariana-Tek/eslint-plugin-mariana-tek.git#v1.0.0",
"fs": "0.0.1-security",
"intl": "1.2.5",
"jquery.cardswipe": "1.3.0",
"keyevent": "1.1.0",
"loader.js": "^4.7.0",
"moment-duration-format": "1.3.0",
"path": "0.12.7",
"qunit-dom": "^0.8.0",
"request": "2.83.0",
"request-promise-native": "1.0.5",
"require-environment-variables": "1.1.2",
"rsvp": "4.8.2",
"semantic-ui-nag": "2.3.0",
"stylelint": "9.10.1",
"stylelint-config-standard": "18.2.0",
"stylelint-declaration-strict-value": "1.1.2",
"stylelint-order": "2.2.1",
"sugar-date": "2.0.4",
"svgstore": "2.0.3"
},
"ember-addon": {
"paths": [
"lib/@mariana/svgstore-inline",
"lib/ember-cli-deploy-mariana"
]
},
"dependencies": {
"chai": "4.1.2",
"ember-cli-sentry": "3.0.0",
"jQuery-Scanner-Detection": "1.2.1",
"mock-socket": "^8.0.5",
"urijs": "1.19.1"
}
}
Let me know if I can provide any more information that would be helpful.
Since version 1.2.2
and 1.2.3
include breaking changes (no longer supports node<4.0
for example), should this be considered a major version change to 2.0.0
?
A little context: our enterprise app is locked into an old version of ember-cli (1.13.8), which depends on this via ^1.x.x
. A fresh npm install
last night picked up the SyntaxError: Unexpected reserved word
on class MergeTrees
error that was breaking the broccoli-merge-trees
travis builds.
Of course, if the project isn't following semantic versioning, feel free to close this.
We should confirm the behaviour we saw earlier is reproducible and then fix this.
I am currently trying to solve an issue where I am merging trees with files that have the same name and should be concatenated rather than overwritten. There are concat plugins for broccoli, but it seems like overkill for this use case. Since mergeTrees already has an option to overwrite files, would it make sense to have an option to concatenate the files as well?
Block-scoped declarations (let, const, function, class) not yet supported outside strict mode
https://travis-ci.org/kellyselden/ember-cli-node-modules-to-vendor/jobs/207119146
https://travis-ci.org/kellyselden/ember-datetimepicker/jobs/207119085
https://travis-ci.org/ember-cli/ember-cli/jobs/207118973
Hello,
I have an ember cli project that has been building fine for a while. Recently, I cleaner my node_modules and rebuilt and now when I build I get:
[jmat@NEADev nea-client]$ ./node_modules/ember-cli/bin/ember build
DEPRECATION: Overriding init without calling this._super is deprecated. Please call `this._super.init && this._super.init.apply(this, arguments);` addon: `ember-cli-htmlbars`
at Function.Addon.lookup (/home/jmat/Work/Actual/nea-dev/nea-client/node_modules/ember-cli/lib/models/addon.js:1005:27)
Could not start watchman; falling back to NodeWatcher for file system events.
Visit http://ember-cli.com/user-guide/#watchman for more info.
⠋ BuildingBroccoliMergeTrees (TreeMerger (lint app)): Expected Broccoli node, got [object Object] for inputNodes[2]
TypeError: BroccoliMergeTrees (TreeMerger (lint app)): Expected Broccoli node, got [object Object] for inputNodes[2]
at BroccoliMergeTrees.Plugin (/home/jmat/Work/Actual/nea-dev/nea-client/node_modules/broccoli-plugin/index.js:23:13)
at new BroccoliMergeTrees (/home/jmat/Work/Actual/nea-dev/nea-client/node_modules/broccoli-merge-trees/index.js:42:10)
at BroccoliMergeTrees (/home/jmat/Work/Actual/nea-dev/nea-client/node_modules/broccoli-merge-trees/index.js:36:53)
at module.exports (/home/jmat/Work/Actual/nea-dev/nea-client/node_modules/ember-cli/lib/broccoli/merge-trees.js:8:14)
at EmberApp.addonLintTree (/home/jmat/Work/Actual/nea-dev/nea-client/node_modules/ember-cli/lib/broccoli/ember-app.js:607:10)
at EmberApp.lintTestTrees (/home/jmat/Work/Actual/nea-dev/nea-client/node_modules/ember-cli/lib/broccoli/ember-app.js:1158:24)
at EmberApp.appTests (/home/jmat/Work/Actual/nea-dev/nea-client/node_modules/ember-cli/lib/broccoli/ember-app.js:1129:51)
at EmberApp.test (/home/jmat/Work/Actual/nea-dev/nea-client/node_modules/ember-cli/lib/broccoli/ember-app.js:1115:26)
at EmberApp.toArray (/home/jmat/Work/Actual/nea-dev/nea-client/node_modules/ember-cli/lib/broccoli/ember-app.js:1647:61)
at EmberApp.toTree (/home/jmat/Work/Actual/nea-dev/nea-client/node_modules/ember-cli/lib/broccoli/ember-app.js:1662:30)
My dependencies are fixed (package.json):
"devDependencies": {
"bower-json": "0.8.1",
"broccoli-asset-rev": "2.5.0",
"broccoli-funnel": "1.0.9",
"broccoli-merge-trees": "1.1.5",
"ember-ajax": "2.5.2",
"ember-cli": "2.9.1",
"ember-cli-app-version": "1.0.0",
"ember-cli-babel": "5.1.10",
"ember-cli-dependency-checker": "1.3.0",
"ember-cli-deprecation-workflow": "0.2.3",
"ember-cli-htmlbars": "1.1.0",
"ember-cli-htmlbars-inline-precompile": "0.3.6",
"ember-cli-inject-live-reload": "1.4.0",
"ember-cli-jquery-ui": "0.0.20",
"ember-cli-jshint": "2.0.1",
"ember-cli-preprocess-registry": "3.0.0",
"ember-cli-qunit": "1.4.2",
"ember-cli-release": "0.2.9",
"ember-cli-sass": "5.3.1",
"ember-cli-sri": "2.1.0",
"ember-cli-uglify": "1.2.0",
"ember-export-application-global": "1.0.5",
"ember-legacy-controllers": "0.1.0",
"ember-legacy-views": "0.2.0",
"ember-load-initializers": "0.5.1",
"ember-resolver": "2.0.3",
"loader.js": "4.0.11",
"mkdirp": "0.5.1",
"phantomjs-prebuilt": "2.1.7",
"read-installed": "4.0.3",
"rimraf": "2.5.2",
"underscore": "1.8.3"
}
For broccoli-merge-trees
I was using 1.1.4, but both it and 1.1.5 have the above error.
Building with --prod
does not encounter the error:
[jmat@NEADev nea-client]$ ./node_modules/ember-cli/bin/ember build --prod
DEPRECATION: Overriding init without calling this._super is deprecated. Please call `this._super.init && this._super.init.apply(this, arguments);` addon: `ember-cli-htmlbars`
at Function.Addon.lookup (/home/jmat/Work/Actual/nea-dev/nea-client/node_modules/ember-cli/lib/models/addon.js:1005:27)
Could not start watchman; falling back to NodeWatcher for file system events.
Visit http://ember-cli.com/user-guide/#watchman for more info.
⠹ Building[API] Warning: The .read and .rebuild APIs will stop working in the next Broccoli version
[API] Warning: Use broccoli-plugin instead: https://github.com/broccolijs/broccoli-plugin
[API] Warning: Plugin uses .read/.rebuild API: TemplateCompiler
cleaning up...
Built project successfully. Stored in "dist/".
File sizes:
- nea-client-8853543fe4a50ac6d45694d047ab0866.css: 44.46 KB (9.56 KB gzipped)
- nea-client.js: 954.26 KB (117.6 KB gzipped)
- vendor-5e3f4ac1c90380b0275fb61126288f69.js: 1.51 MB (443.24 KB gzipped)
- vendor-b1c6c9d4877bb9dd014fc44e4cdba9cd.css: 167.88 KB (30.93 KB gzipped)
[jmat@NEADev nea-client]$
Has anyone run into this? And if so, how do I fix it?
Thanks-
I want to have both a preprocessed version of a file and the processed version output to the same directory.
Create this brocfile.js:
var
Filter = require('broccoli-filter'),
funnel = require('broccoli-funnel'),
merge = require('broccoli-merge-trees')
function MyFilter(input, options) { Filter.call(this, input, options) }
MyFilter.prototype = Object.create(Filter.prototype)
MyFilter.prototype.extensions = [ 'filter-me' ]
MyFilter.prototype.targetExtension = 'txt'
MyFilter.prototype.processString = function(contents, relativePath) { return contents }
module.exports = merge([
'assets',
new MyFilter(funnel('assets/filter-these', { srcDir: '/', destDir: 'filter-these' }))
])
Then run:
npm install broccoli broccoli-filter broccoli-funnel broccoli-merge-trees
mkdir assets; mkdir assets/filter-these
touch assets/filter-these/x.filter-me assets/static.txt
broccoli build dist
works. x.filter-me
and x.txt
appear side-by-side in dist/filter-these
.
broccoli serve
works at first, but then touch assets/static.txt
and it breaks:
Built with error:
Error: Merge error: file filter-these/x.filter-me exists in /home/andy/broccoli-bug/tmp/broccoli_merge_trees-input_base_path-dR2gWTSy.tmp/0 and /home/andy/broccoli-bug/tmp/broccoli_merge_trees-input_base_path-dR2gWTSy.tmp/1
Pass option { overwrite: true } to mergeTrees in order to have the latter file win.
at mergeRelativePath (/home/andy/broccoli-bug/node_modules/broccoli-merge-trees/index.js:118:19)
at mergeRelativePath (/home/andy/broccoli-bug/node_modules/broccoli-merge-trees/index.js:142:15)
at BroccoliMergeTrees.build (/home/andy/broccoli-bug/node_modules/broccoli-merge-trees/index.js:36:3)
at /home/andy/broccoli-bug/node_modules/broccoli-merge-trees/node_modules/broccoli-plugin/read_compat.js:61:34
at lib$rsvp$$internal$$tryCatch (/home/andy/broccoli-bug/node_modules/broccoli-merge-trees/node_modules/broccoli-plugin/node_modules/promise-map-series/node_modules/rsvp/dist/rsvp.js:493:16)
at lib$rsvp$$internal$$invokeCallback (/home/andy/broccoli-bug/node_modules/broccoli-merge-trees/node_modules/broccoli-plugin/node_modules/promise-map-series/node_modules/rsvp/dist/rsvp.js:505:17)
at lib$rsvp$$internal$$publish (/home/andy/broccoli-bug/node_modules/broccoli-merge-trees/node_modules/broccoli-plugin/node_modules/promise-map-series/node_modules/rsvp/dist/rsvp.js:476:11)
at lib$rsvp$asap$$flush (/home/andy/broccoli-bug/node_modules/broccoli-merge-trees/node_modules/broccoli-plugin/node_modules/promise-map-series/node_modules/rsvp/dist/rsvp.js:1198:9)
at process._tickCallback (node.js:355:11)
This is coming from ember-cli/ember-cli#6236, which ultimately turned out to be an issue in broccoli-merge-trees.
When a directory with the same name is added at different times in two different input trees, the plugin ends up attempting to create a symlink where one already exists, resulting in an error like:
Error: EEXIST: file already exists, symlink '/Users/dfreeman/Desktop/broccoli-merge-failure/tmp/one/subdir/file1' -> '/var/folders/5x/vrw_v2r16vj3mftgg0h5_4640000gn/T/broccoli-96844FC3ATB2dAD1S/out-2-broccoli_merge_trees/subdir/file1'
A small reproduction of the issue (as minimal as I could come up with) is available here:
https://github.com/dfreeman/broccoli-merge-failure/blob/master/index.js
I am getting version not found: [email protected], could anyone help fixing it on npm?
Running into this with Ember CLI when I use bower link
with a local package. The check here doesn't seem to think that symlinks can't be directories.
I poked about and found that the file in question is totally traversable and definitely a directory, but I don't know enough about filesystems to come up with a better way of checking.
Maybe related?
broccolijs/broccoli-kitchen-sink-helpers#3
ember-cli/ember-cli#565
Seeing the below error on Windows, and npm cache clean etc doesn't fix it.
You can reproduce by running ember build
on shaunc/ember-grid@edaddd7
Is this a known bug?
Build failed.
ENOTDIR, not a directory 'G:\Projects\ember-grid\tmp\broccoli_merge_trees-input_
base_path-IfcH4Dsc.tmp\1'
Error: ENOTDIR, not a directory 'G:\Projects\ember-grid\tmp\broccoli_merge_trees
-input_base_path-IfcH4Dsc.tmp\1'
at Error (native)
at Object.fs.readdirSync (fs.js:765:18)
at G:\Projects\ember-grid\node_modules\ember-cli\node_modules\broccoli-merge
-trees\index.js:35:19
at Array.map (native)
at mergeRelativePath (G:\Projects\ember-grid\node_modules\ember-cli\node_mod
ules\broccoli-merge-trees\index.js:33:28)
at BroccoliMergeTrees.build (G:\Projects\ember-grid\node_modules\ember-cli\n
ode_modules\broccoli-merge-trees\index.js:26:3)
at G:\Projects\ember-grid\node_modules\ember-cli\node_modules\broccoli-merge
-trees\node_modules\broccoli-plugin\read_compat.js:61:34
at lib$rsvp$$internal$$tryCatch (G:\Projects\ember-grid\node_modules\ember-c
li\node_modules\rsvp\dist\rsvp.js:493:16)
at lib$rsvp$$internal$$invokeCallback (G:\Projects\ember-grid\node_modules\e
mber-cli\node_modules\rsvp\dist\rsvp.js:505:17)
at lib$rsvp$$internal$$publish (G:\Projects\ember-grid\node_modules\ember-cl
i\node_modules\rsvp\dist\rsvp.js:476:11)
Hi @stefanpenner, @hjdivad, @rwjblue,
I encountered the following bug: If there is a symlink in one of the input directories, say
input-dir-1/symlink -> /.../foo-dir
and it changes to point to a different directory, e.g.
input-dir-1/symlink -> /.../bar-dir
the output symlink isn't updated, i.e. it continues to be
output-dir/symlink -> /.../foo-dir
Between the logic in node-merge-trees and fs-tree-diff I'm pretty confused about where the problem is occurring, so I'm not submitting a test case here, but perhaps one of you lovely folks knows how to isolate (and fix) this problem?
Currently, the following will not fail until sometime mid-build when we could have thrown during construction:
let tree = new BroccoliMergeTrees([[]]);
Not sure the best place to submit this issue; though this seems like the right repo. I'm in the beginning stages of porting the Ember part of a Rails app over to ember-cli and when I tried to bower install --save intro.js
the build began to fail with this error:
Merge error: "intro.js" exists as a file in tmp/main_file_picker-tmp_dest_dir-9puBDv4G.tmp but as a directory in vendor
I think this is b/c jquery has a file called intro.js
and this repo is somehow combining all the directories in vendor that results in a conflict between that file and the library intro.js
.
This is the brocfile:
/* global require, module */
var EmberApp = require('ember-cli/lib/broccoli/ember-app');
var instrument = require('broccoli-debug').instrument;
var pickFiles = require('broccoli-static-compiler');
var mergeTrees = require('broccoli-merge-trees');
var app = new EmberApp({
name: require('./package.json').name,
legacyFilesToAppend: [
'jquery.js',
'jquery.layout/dist/jquery.layout-latest.min.js',
'handlebars.js',
'ember.js',
'ic-ajax/dist/named-amd/main.js',
'ember-data.js',
'app-shims.js',
'ember-resolver.js',
'ember-load-initializers.js'
],
// AKA whitelisted modules
ignoredModules: [
'ember',
'ember/resolver',
'ember/load-initializers',
'ic-ajax'
],
// hack we can hopefully remove as the addon system improves
importWhitelist: {
'ember': ['default'],
'ember/resolver': ['default'],
'ember/load-initializers': ['default']
},
// hack
getEnvJSON: require('./config/environment')
});
var emberApp = app.toTree();
instrument.print(emberApp);
var jqueryLayoutStyles = pickFiles('vendor', {
srcDir: '/jquery.layout/dist',
destDir: '/assets/',
files: [
'layout-default-latest.css'
]
});
instrument.print(jqueryLayoutStyles);
var appAndCustomDependencies = mergeTrees([
emberApp, jqueryLayoutStyles//, sassTree
], { overwrite: true });
module.exports = appAndCustomDependencies;
Getting : [BroccoliMergeTrees] failed with:
Error: Merge error: file modules/profile/templates/.DS_Store exists in /Users/segupta/Dev/copy/voyager-web_trunk/tmp/broccoli_merge_trees-input_base_path-gSVm96mm.tmp/0 and /Users/segupta/Dev/copy/voyager-web_trunk/tmp/broccoli_merge_trees-input_base_path-gSVm96mm.tmp/1
Pass option { overwrite: true } to mergeTrees in order to have the latter file win.
Should we consider auto-ignoring this one? Is that a bad path to go down?
Anecdotally this is just mega annoying for OSX users, and with a small adjustment on our side it could become a non-problem.
Questions: Is this a one-time thing, or will there be more. If we decide this is appropriate, by what criteria do we accept/decline additions to this set.
The documentation reads:
The structure of output.js will be as follows:
// - header
// - ordered content of the files in headerFiles
// - un-ordered content of files matched by inputFiles, but not in headerFiles or footerFiles
// - ordered content of the files in footerFiles
// - footer
Does this mean that if I have:
inputFiles: ['fileA', 'fileB']
The order of fileA
and fileB
in the final outputted file is not guaranteed? If so, how can I guarantee the order is as specified in the inputFiles
array?
It would be useful if there was an option (or even default behavior) with which merge-trees
would ignore directories that do not exist.
For example, in a Brocfile
we use for all projects, we use the directories [ 'lib', 'src', 'test', 'bin', 'bench' ]
. These are not always applicable to each project, but in an effort to not have to change the Brocfile
in every project, we are currently writing our own function that returns a merged tree for just the directories that exist.
I think it would make sense if this project supported that kind of a workflow. Thoughts?
i’ve been moving some files around, so i would assume it’s from that
The Broccoli Plugin: [BroccoliMergeTrees] failed with:
Error: ENOENT: no such file or directory, stat '/Users/jedelman/workspace/voyager-web_trunk/tmp/broccoli_merge_trees-input_base_path-DQuSdorE.tmp/3/components/job-flavors.js'
at Error (native)
at Object.fs.statSync (fs.js:844:18)
at buildEntry (/Users/jedelman/workspace/voyager-web_trunk/node_modules/broccoli-merge-trees/index.js:339:17)
at BroccoliMergeTrees._mergeRelativePath (/Users/jedelman/workspace/voyager-web_trunk/node_modules/broccoli-merge-trees/index.js:247:19)
at BroccoliMergeTrees._mergeRelativePath (/Users/jedelman/workspace/voyager-web_trunk/node_modules/broccoli-merge-trees/index.js:300:31)
at BroccoliMergeTrees.build (/Users/jedelman/workspace/voyager-web_trunk/node_modules/broccoli-merge-trees/index.js:82:24)
at /Users/jedelman/workspace/voyager-web_trunk/node_modules/broccoli-merge-trees/node_modules/broccoli-plugin/read_compat.js:61:34
at tryCatch (/Users/jedelman/workspace/voyager-web_trunk/node_modules/broccoli-merge-trees/node_modules/broccoli-plugin/node_modules/promise-map-series/node_modules/rsvp/dist/rsvp.js:538:12)
at invokeCallback (/Users/jedelman/workspace/voyager-web_trunk/node_modules/broccoli-merge-trees/node_modules/broccoli-plugin/node_modules/promise-map-series/node_modules/rsvp/dist/rsvp.js:553:13)
at publish (/Users/jedelman/workspace/voyager-web_trunk/node_modules/broccoli-merge-trees/node_modules/broccoli-plugin/node_modules/promise-map-series/node_modules/rsvp/dist/rsvp.js:521:7)
at flush (/Users/jedelman/workspace/voyager-web_trunk/node_modules/broccoli-merge-trees/node_modules/broccoli-plugin/node_modules/promise-map-series/node_modules/rsvp/dist/rsvp.js:2373:5)
at nextTickCallbackWith0Args (node.js:419:9)
at process._tickCallback (node.js:348:13)
The broccoli plugin was instantiated at:
at BroccoliMergeTrees.Plugin (/Users/jedelman/workspace/voyager-web_trunk/node_modules/broccoli-merge-trees/node_modules/broccoli-plugin/index.js:7:31)
at new BroccoliMergeTrees (/Users/jedelman/workspace/voyager-web_trunk/node_modules/broccoli-merge-trees/index.js:42:10)
at BroccoliMergeTrees (/Users/jedelman/workspace/voyager-web_trunk/node_modules/broccoli-merge-trees/index.js:36:53)
at CoreObject.buildChildAppTree (/Users/jedelman/workspace/voyager-web_trunk/node_modules/ember-engines/lib/engine-addon.js:58:10)
at CoreObject.buildEngineAppTree (/Users/jedelman/workspace/voyager-web_trunk/node_modules/ember-engines/lib/engine-addon.js:123:40)
at CoreObject.buildCompleteJSTree (/Users/jedelman/workspace/voyager-web_trunk/node_modules/ember-engines/lib/engine-addon.js:186:42)
at CoreObject.treeForEngine (/Users/jedelman/workspace/voyager-web_trunk/node_modules/ember-engines/lib/engine-addon.js:277:50)
at CoreObject.treeFor (/Users/jedelman/workspace/voyager-web_trunk/node_modules/ember-engines/lib/engine-addon.js:644:25)
at /Users/jedelman/workspace/voyager-web_trunk/node_modules/ember-cli/lib/broccoli/ember-app.js:498:20
at Array.map (native)
at EmberApp.addonTreesFor (/Users/jedelman/workspace/voyager-web_trunk/node_modules/ember-cli/lib/broccoli/ember-app.js:496:30)
at EmberApp._addonTree (/Users/jedelman/workspace/voyager-web_trunk/node_modules/ember-cli/lib/broccoli/ember-app.js:899:36)
at EmberApp._processedVendorTree (/Users/jedelman/workspace/voyager-web_trunk/node_modules/ember-cli/lib/broccoli/ember-app.js:944:20)
at EmberApp._processedExternalTree (/Users/jedelman/workspace/voyager-web_trunk/node_modules/ember-cli/lib/broccoli/ember-app.js:975:21)
at EmberApp.appAndDependencies (/Users/jedelman/workspace/voyager-web_trunk/node_modules/ember-cli/lib/broccoli/ember-app.js:1070:30)
at EmberApp.javascript (/Users/jedelman/workspace/voyager-web_trunk/node_modules/ember-cli/lib/broccoli/ember-app.js:1199:34)
After upgrading ember to 3.15.1
How pass overwrite: true
to mergeTrees?
I found similar issue here #109, But I did not find a solution.
Error:
(node:7137) UnhandledPromiseRejectionWarning: Error: [BroccoliMergeTrees] error while merging the following:
@joliss you may want to add those tmp/scratch files to your npmignore
(i think thats something that can be set globally)
➜ asdfasdf git:(master) ✗ ember s
version: 1.13.11
Warning: failed to stat /Users/stefanpenner/tmp/asdfasdf/node_modules/broccoli-merge-trees/tmp/broccoli_merge_trees-input_base_path-00NVlxQx.tmp/0
will investigate in the next day or so (this is unreleased and on master)
This error is comming out when trying to build the EmberCLI app.
*Ember -v *
version: 1.13.13
node: 4.2.4
npm: 2.14.10
os: win32 x64
EINVAL: invalid argument, symlink 'D:\Workspaces\xxx\xxx\Core
xxx\xxxx\xxx\xxx-client-app\tmp\babel-output_path-oshgWKVn.tmp\xxx-
client-app\tests\integration\app-pods\components\xxxx\xxx\xxxx\component-test.jshint.js' -> 'D:\Workspaces
\xxxxx\xxx\xxx\xxx\xxxx\xxxx\tmp\bro
ccoli_merge_trees-output_path-BeD6edxd.tmp\xxx\tests\integration\app-
pods\components\xxx\xxxx\xxxx\component-test.jshint.js'
Then updated to Ember Cli v2.4.3
ember -v
ember-cli: 2.4.3
node: 4.2.4
os: win32 x64
ember build
Build failed.
The Broccoli Plugin: [BroccoliMergeTrees: TreeMerger (appTestTrees)] failed with:
Error: EINVAL: invalid argument, symlink 'file path' <- this length is 281 charachters.
Same error as before.
When the path name is more then 260 the error happens which is the max limit of the windows OS.
Is the broccoli not using the libUV beacuse i think that libUV would fix the problem.
As requested in IRC, cloning the repo and running "npm install; npm test" fails with the following output.
> [email protected] test /Users/edd/src/broccoli/broccoli-merge-trees
> jshint *.js test/*.js && tap --stderr --timeout 2 ./test/*_test.coffee
not ok ./test/tree_merger_test.coffee .................. 9/13
Command: "coffee tree_merger_test.coffee"
TAP version 13
not ok 1 should be equivalent
---
file: /Users/edd/src/broccoli/broccoli-merge-trees/node_modules/rsvp/dist/commonjs/rsvp/promise.js
line: 228
column: 21
stack:
- getCaller (/Users/edd/src/broccoli/broccoli-merge-trees/node_modules/tap/lib/tap-assert.js:418:17)
- assert (/Users/edd/src/broccoli/broccoli-merge-trees/node_modules/tap/lib/tap-assert.js:21:16)
- Function.equivalent (/Users/edd/src/broccoli/broccoli-merge-trees/node_modules/tap/lib/tap-assert.js:182:12)
- Test._testAssert (/Users/edd/src/broccoli/broccoli-merge-trees/node_modules/tap/lib/tap-test.js:87:16)
- /Users/edd/src/broccoli/broccoli-merge-trees/test/tree_merger_test.coffee:20:22
- invokeCallback (/Users/edd/src/broccoli/broccoli-merge-trees/node_modules/rsvp/dist/commonjs/rsvp/promise.js:228:21)
- publish (/Users/edd/src/broccoli/broccoli-merge-trees/node_modules/rsvp/dist/commonjs/rsvp/promise.js:176:9)
- publishFulfillment (/Users/edd/src/broccoli/broccoli-merge-trees/node_modules/rsvp/dist/commonjs/rsvp/promise.js:312:5)
- flush (/Users/edd/src/broccoli/broccoli-merge-trees/node_modules/rsvp/dist/commonjs/rsvp/asap.js:41:9)
- process._tickCallback (node.js:415:13)
- Function.Module.runMain (module.js:499:11)
- startup (node.js:119:16)
- node.js:901:3
-
found:
bar: 1
baz: 2
foo: 1
wanted:
foo: 1
bar:
- foo
baz: 2
diff: |
{
"bar" : �[34m�[1m"1"�[0m,�[36m�[1m // != ["foo"]�[0m
"baz" : "2",
"foo" : "1"
}
...
ok 2 should be similar
not ok 3 should be equivalent
---
file: /Users/edd/src/broccoli/broccoli-merge-trees/node_modules/rsvp/dist/commonjs/rsvp/promise.js
line: 228
column: 21
stack:
- getCaller (/Users/edd/src/broccoli/broccoli-merge-trees/node_modules/tap/lib/tap-assert.js:418:17)
- assert (/Users/edd/src/broccoli/broccoli-merge-trees/node_modules/tap/lib/tap-assert.js:21:16)
- Function.equivalent (/Users/edd/src/broccoli/broccoli-merge-trees/node_modules/tap/lib/tap-assert.js:182:12)
- Test._testAssert (/Users/edd/src/broccoli/broccoli-merge-trees/node_modules/tap/lib/tap-test.js:87:16)
- /Users/edd/src/broccoli/broccoli-merge-trees/test/tree_merger_test.coffee:48:22
- invokeCallback (/Users/edd/src/broccoli/broccoli-merge-trees/node_modules/rsvp/dist/commonjs/rsvp/promise.js:228:21)
- publish (/Users/edd/src/broccoli/broccoli-merge-trees/node_modules/rsvp/dist/commonjs/rsvp/promise.js:176:9)
- publishFulfillment (/Users/edd/src/broccoli/broccoli-merge-trees/node_modules/rsvp/dist/commonjs/rsvp/promise.js:312:5)
- flush (/Users/edd/src/broccoli/broccoli-merge-trees/node_modules/rsvp/dist/commonjs/rsvp/asap.js:41:9)
- process._tickCallback (node.js:415:13)
- Function.Module.runMain (module.js:499:11)
- startup (node.js:119:16)
- node.js:901:3
-
found:
bar: 1b
baz: 3
foo: 1b
wanted:
foo: 1b
bar:
- foo
baz: 3
diff: |
{
"bar" : �[34m�[1m"1b"�[0m,�[36m�[1m // != ["foo"]�[0m
"baz" : "3",
"foo" : "1b"
}
...
ok 4 should be equivalent
ok 5 should be similar
ok 6 should be similar
not ok 7 should be similar
---
file: /Users/edd/src/broccoli/broccoli-merge-trees/test/tree_merger_test.coffee
line: 72
column: 9
stack:
- getCaller (/Users/edd/src/broccoli/broccoli-merge-trees/node_modules/tap/lib/tap-assert.js:418:17)
- Function.assert (/Users/edd/src/broccoli/broccoli-merge-trees/node_modules/tap/lib/tap-assert.js:21:16)
- Function.similar (/Users/edd/src/broccoli/broccoli-merge-trees/node_modules/tap/lib/tap-assert.js:251:19)
- Test._testAssert [as similar] (/Users/edd/src/broccoli/broccoli-merge-trees/node_modules/tap/lib/tap-test.js:87:16)
- assertError (/Users/edd/src/broccoli/broccoli-merge-trees/test/tree_merger_test.coffee:72:9)
- invokeCallback (/Users/edd/src/broccoli/broccoli-merge-trees/node_modules/rsvp/dist/commonjs/rsvp/promise.js:228:21)
- publish (/Users/edd/src/broccoli/broccoli-merge-trees/node_modules/rsvp/dist/commonjs/rsvp/promise.js:176:9)
- publishRejection (/Users/edd/src/broccoli/broccoli-merge-trees/node_modules/rsvp/dist/commonjs/rsvp/promise.js:318:5)
- flush (/Users/edd/src/broccoli/broccoli-merge-trees/node_modules/rsvp/dist/commonjs/rsvp/asap.js:41:9)
- process._tickCallback (node.js:415:13)
- Function.Module.runMain (module.js:499:11)
- startup (node.js:119:16)
- node.js:901:3
-
pattern: "/\"foo\" exists as a file in .* but as a directory in .*/"
string: ENOENT, no such file or directory 'tmp/fixture_tree-tmp_dest_dir-kH5csEby.tmp/foo'
match: ~
...
ok 8 should be similar
ok 9 should be similar
ok 10 should be similar
not ok 11 should be similar
---
file: /Users/edd/src/broccoli/broccoli-merge-trees/test/tree_merger_test.coffee
line: 72
column: 9
stack:
- getCaller (/Users/edd/src/broccoli/broccoli-merge-trees/node_modules/tap/lib/tap-assert.js:418:17)
- Function.assert (/Users/edd/src/broccoli/broccoli-merge-trees/node_modules/tap/lib/tap-assert.js:21:16)
- Function.similar (/Users/edd/src/broccoli/broccoli-merge-trees/node_modules/tap/lib/tap-assert.js:251:19)
- Test._testAssert [as similar] (/Users/edd/src/broccoli/broccoli-merge-trees/node_modules/tap/lib/tap-test.js:87:16)
- assertError (/Users/edd/src/broccoli/broccoli-merge-trees/test/tree_merger_test.coffee:72:9)
- invokeCallback (/Users/edd/src/broccoli/broccoli-merge-trees/node_modules/rsvp/dist/commonjs/rsvp/promise.js:228:21)
- publish (/Users/edd/src/broccoli/broccoli-merge-trees/node_modules/rsvp/dist/commonjs/rsvp/promise.js:176:9)
- publishRejection (/Users/edd/src/broccoli/broccoli-merge-trees/node_modules/rsvp/dist/commonjs/rsvp/promise.js:318:5)
- flush (/Users/edd/src/broccoli/broccoli-merge-trees/node_modules/rsvp/dist/commonjs/rsvp/asap.js:41:9)
- process._tickCallback (node.js:415:13)
- Function.Module.runMain (module.js:499:11)
- startup (node.js:119:16)
- node.js:901:3
-
pattern: "/\"foo\" exists as a file in .* but as a directory in .*/"
string: ENOENT, no such file or directory 'tmp/fixture_tree-tmp_dest_dir-h4AJAInv.tmp/foo'
match: ~
...
ok 12 should be similar
ok 13 ./test/tree_merger_test.coffee
1..13
# tests 13
# pass 9
# fail 4
total .................................................. 9/13
not ok
npm ERR! weird error 4
npm ERR! not ok code 0
OS X: 10.9.2 (13C64)
Node: 0.10.21
NPM: 1.3.11
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.