Skip to content

Commit ffb5e8c

Browse files
authored
Merge pull request #120 from ember-learn/avoid-emfile-watch-error
Avoid triggering a watch on the addon root
2 parents d752437 + 2929f6a commit ffb5e8c

File tree

3 files changed

+71
-10
lines changed

3 files changed

+71
-10
lines changed

index.js

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
const fs = require('fs');
44
const path = require('path');
55
const resolve = require('resolve');
6+
const UnwatchedDir = require('broccoli-source').UnwatchedDir;
67
const MergeTrees = require('broccoli-merge-trees');
78
const Funnel = require('broccoli-funnel');
89
const EmberApp = require('ember-cli/lib/broccoli/ember-app'); // eslint-disable-line node/no-unpublished-require
@@ -183,11 +184,23 @@ module.exports = {
183184
let include = docProject.include || [];
184185
let includeTrees = docProject.includeTrees || [];
185186

186-
let includeTreePaths = includeTrees.map(t => `${parentAddon.treePaths[t]}/**/*`);
187+
let includeTreePaths = includeTrees.map(t => parentAddon.treePaths[t]);
188+
let includeFunnels = [
189+
// We need to be very careful to avoid triggering a watch on the addon root here
190+
// because of https://github.com/nodejs/node/issues/15683
191+
new Funnel(new UnwatchedDir(parentAddon.root), {
192+
include: ['package.json', 'README.md']
193+
})
194+
];
195+
196+
for (let path of include.concat(includeTreePaths)) {
197+
let fullPath = `${parentAddon.root}/${path}`;
198+
if (fs.existsSync(fullPath)) {
199+
includeFunnels.push(new Funnel(fullPath, { destDir: path }));
200+
}
201+
}
187202

188-
addonSourceTree = new Funnel(parentAddon.root, {
189-
include: include.concat(includeTreePaths).concat('package.json', 'README.md')
190-
});
203+
addonSourceTree = new MergeTrees(includeFunnels);
191204
}
192205

193206
let pluginRegistry = new PluginRegistry(project);

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
"broccoli-merge-trees": "^2.0.0",
3030
"broccoli-persistent-filter": "^1.4.3",
3131
"broccoli-plugin": "^1.3.0",
32+
"broccoli-source": "^1.1.0",
3233
"broccoli-stew": "^1.5.0",
3334
"ember-ace": "^1.2.0",
3435
"ember-cli-autoprefixer": "^0.8.1",

yarn.lock

Lines changed: 53 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2231,10 +2231,14 @@ commander@2.8.x:
22312231
dependencies:
22322232
graceful-readlink ">= 1.0.0"
22332233

2234-
commander@^2.5.0, commander@^2.6.0, commander@^2.9.0:
2234+
commander@^2.5.0, commander@^2.6.0:
22352235
version "2.14.1"
22362236
resolved "https://registry.yarnpkg.com/commander/-/commander-2.14.1.tgz#2235123e37af8ca3c65df45b026dbd357b01b9aa"
22372237

2238+
commander@^2.9.0:
2239+
version "2.15.0"
2240+
resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.0.tgz#ad2a23a1c3b036e392469b8012cec6b33b4c1322"
2241+
22382242
commander@~2.13.0:
22392243
version "2.13.0"
22402244
resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c"
@@ -6315,10 +6319,14 @@ mute-stream@0.0.7:
63156319
version "0.0.7"
63166320
resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
63176321

6318-
nan@^2.3.0, nan@^2.3.2:
6322+
nan@^2.3.0:
63196323
version "2.9.2"
63206324
resolved "https://registry.yarnpkg.com/nan/-/nan-2.9.2.tgz#f564d75f5f8f36a6d9456cca7a6c4fe488ab7866"
63216325

6326+
nan@^2.3.2:
6327+
version "2.10.0"
6328+
resolved "https://registry.yarnpkg.com/nan/-/nan-2.10.0.tgz#96d0cd610ebd58d4b4de9cc0c6828cda99c7548f"
6329+
63226330
nanomatch@^1.2.9:
63236331
version "1.2.9"
63246332
resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.9.tgz#879f7150cb2dab7a471259066c104eee6e0fa7c2"
@@ -7062,7 +7070,7 @@ readable-stream@1.1:
70627070
isarray "0.0.1"
70637071
string_decoder "~0.10.x"
70647072

7065-
readable-stream@^2, readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.1.5, readable-stream@^2.2.2:
7073+
readable-stream@^2, readable-stream@^2.0.0, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.1.5, readable-stream@^2.2.2:
70667074
version "2.3.4"
70677075
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.4.tgz#c946c3f47fa7d8eabc0b6150f4a12f69a4574071"
70687076
dependencies:
@@ -7074,6 +7082,18 @@ readable-stream@^2, readable-stream@^2.0.0, readable-stream@^2.0.1, readable-str
70747082
string_decoder "~1.0.3"
70757083
util-deprecate "~1.0.1"
70767084

7085+
readable-stream@^2.0.1:
7086+
version "2.3.5"
7087+
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.5.tgz#b4f85003a938cbb6ecbce2a124fb1012bd1a838d"
7088+
dependencies:
7089+
core-util-is "~1.0.0"
7090+
inherits "~2.0.3"
7091+
isarray "~1.0.0"
7092+
process-nextick-args "~2.0.0"
7093+
safe-buffer "~5.1.1"
7094+
string_decoder "~1.0.3"
7095+
util-deprecate "~1.0.1"
7096+
70777097
readable-stream@~1.0.2:
70787098
version "1.0.34"
70797099
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c"
@@ -7232,9 +7252,9 @@ repeating@^2.0.0:
72327252
dependencies:
72337253
is-finite "^1.0.0"
72347254

7235-
request@2, request@^2.55.0:
7236-
version "2.83.0"
7237-
resolved "https://registry.yarnpkg.com/request/-/request-2.83.0.tgz#ca0b65da02ed62935887808e6f510381034e3356"
7255+
request@2:
7256+
version "2.85.0"
7257+
resolved "https://registry.yarnpkg.com/request/-/request-2.85.0.tgz#5a03615a47c61420b3eb99b7dba204f83603e1fa"
72387258
dependencies:
72397259
aws-sign2 "~0.7.0"
72407260
aws4 "^1.6.0"
@@ -7286,6 +7306,33 @@ request@2.81.0:
72867306
tunnel-agent "^0.6.0"
72877307
uuid "^3.0.0"
72887308

7309+
request@^2.55.0:
7310+
version "2.83.0"
7311+
resolved "https://registry.yarnpkg.com/request/-/request-2.83.0.tgz#ca0b65da02ed62935887808e6f510381034e3356"
7312+
dependencies:
7313+
aws-sign2 "~0.7.0"
7314+
aws4 "^1.6.0"
7315+
caseless "~0.12.0"
7316+
combined-stream "~1.0.5"
7317+
extend "~3.0.1"
7318+
forever-agent "~0.6.1"
7319+
form-data "~2.3.1"
7320+
har-validator "~5.0.3"
7321+
hawk "~6.0.2"
7322+
http-signature "~1.2.0"
7323+
is-typedarray "~1.0.0"
7324+
isstream "~0.1.2"
7325+
json-stringify-safe "~5.0.1"
7326+
mime-types "~2.1.17"
7327+
oauth-sign "~0.8.2"
7328+
performance-now "^2.1.0"
7329+
qs "~6.5.1"
7330+
safe-buffer "^5.1.1"
7331+
stringstream "~0.0.5"
7332+
tough-cookie "~2.3.3"
7333+
tunnel-agent "^0.6.0"
7334+
uuid "^3.1.0"
7335+
72897336
request@~2.40.0:
72907337
version "2.40.0"
72917338
resolved "https://registry.yarnpkg.com/request/-/request-2.40.0.tgz#4dd670f696f1e6e842e66b4b5e839301ab9beb67"

0 commit comments

Comments
 (0)