From 1a24de8c39ce62fa40d697b7504dcdbbb931c198 Mon Sep 17 00:00:00 2001 From: Robert Jackson Date: Wed, 1 Mar 2017 08:11:47 -0500 Subject: [PATCH] [BUGFIX release] Enable linking ember-source without prod files. Prior to these changes, in order to `npm link ember-source` you must run a production build of Ember. This is because of the list of files that we provide to `stew.find` (now `Funnel`) includes `ember.prod.js` and `ember.min.js`. This commit does two main things: * Remove usage of `stew.find` (and therefore remove `broccoli-stew` as a dep). It is likely that `stew.find` will be deprecated (stefanpenner/broccoli-stew#122). * Only provide the list of files that are present to the `Funnel` `files` listing. Before this change the following would throw an error: ``` git clone git@github.com:emberjs/ember.js.git ember-canary cd ember-canary yarn install ./node_modules/.bin/ember build --environment=development yarn link cd .. ember new test-app --yarn cd test-app yarn link ember-source ember s ``` --- index.js | 36 +++++++++++++++++++++--------------- package.json | 5 ++--- 2 files changed, 23 insertions(+), 18 deletions(-) diff --git a/index.js b/index.js index 7ceebb95b05..f28d571e92f 100644 --- a/index.js +++ b/index.js @@ -1,5 +1,7 @@ /* eslint-env node */ 'use strict'; + +var fs = require('fs'); var path = require('path'); var resolve = require('resolve'); @@ -33,7 +35,8 @@ module.exports = { absolutePaths: absolutePaths, treeForVendor: function() { - var stew = require('broccoli-stew'); + var Funnel = require('broccoli-funnel'); + var MergeTrees = require('broccoli-merge-trees'); var jqueryPath; try { @@ -42,26 +45,29 @@ module.exports = { jqueryPath = path.dirname(require.resolve('jquery/package.json')); } - var jquery = stew.find(jqueryPath + '/dist', { + var jquery = new Funnel(jqueryPath + '/dist', { destDir: 'ember/jquery', files: [ 'jquery.js' ] }); - var ember = stew.find(__dirname + '/dist', { + var emberFiles = [ + 'ember-runtime.js', + 'ember-template-compiler.js', + 'ember-testing.js', + 'ember.debug.js', + 'ember.min.js', + 'ember.prod.js' + ].filter(function(file) { + var fullPath = path.join(__dirname, 'dist', file); + + return fs.existsSync(fullPath); + }); + + var ember = new Funnel(__dirname + '/dist', { destDir: 'ember', - files: [ - 'ember-runtime.js', - 'ember-template-compiler.js', - 'ember-testing.js', - 'ember.debug.js', - 'ember.min.js', - 'ember.prod.js' - ] + files: emberFiles }); - return stew.find([ - ember, - jquery - ]); + return new MergeTrees([ember, jquery]); } }; diff --git a/package.json b/package.json index 128c208c3ec..f29ae8e1563 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,8 @@ "@glimmer/reference": "^0.21.0", "@glimmer/runtime": "^0.21.1", "@glimmer/util": "^0.21.0", - "broccoli-stew": "^1.2.0", + "broccoli-funnel": "^1.0.6", + "broccoli-merge-trees": "^1.1.4", "ember-cli-get-component-path-option": "^1.0.0", "ember-cli-normalize-entity-name": "^1.0.0", "ember-cli-path-utils": "^1.0.0", @@ -62,8 +63,6 @@ "babel-plugin-feature-flags": "^0.2.3", "babel-plugin-filter-imports": "~0.2.0", "backburner.js": "^0.3.1", - "broccoli-funnel": "^1.0.6", - "broccoli-merge-trees": "^1.1.4", "broccoli-rollup": "^1.0.3", "broccoli-string-replace": "^0.1.1", "broccoli-uglify-sourcemap": "^1.4.2",