|
12 | 12 |
|
13 | 13 | const packageInfo = require('../package.json');
|
14 | 14 |
|
| 15 | +const { concat } = require('lodash'); |
| 16 | +const copy = require('recursive-copy'); |
15 | 17 | const path = require('path');
|
16 | 18 | const updateNotifier = require('update-notifier');
|
17 | 19 |
|
@@ -277,14 +279,32 @@ const patternlab_module = function(config) {
|
277 | 279 | p.compileState = CompileState.NEEDS_REBUILD;
|
278 | 280 | }
|
279 | 281 | }
|
280 |
| - |
281 | 282 | //render all patterns last, so lineageR works
|
282 |
| - return patternsToBuild |
283 |
| - .reduce((previousPromise, pattern) => { |
284 |
| - return previousPromise.then(() => |
285 |
| - patternlab.renderSinglePattern(pattern) |
| 283 | + const allPatternsPromise = patternsToBuild.map(pattern => |
| 284 | + patternlab.renderSinglePattern(pattern) |
| 285 | + ); |
| 286 | + //copy non-pattern files like JavaScript |
| 287 | + const allJS = patternsToBuild.map(pattern => { |
| 288 | + const { name, patternPartial, subdir } = pattern; |
| 289 | + const { |
| 290 | + source: { patterns: sourceDir }, |
| 291 | + public: { patterns: publicDir }, |
| 292 | + } = patternlab.config.paths; |
| 293 | + const src = path.join(sourceDir, subdir); |
| 294 | + const dest = path.join(publicDir, name); |
| 295 | + return copy(src, dest, { |
| 296 | + overwrite: true, |
| 297 | + filter: ['*.js'], |
| 298 | + rename: () => { |
| 299 | + return `${patternPartial}.js`; |
| 300 | + }, |
| 301 | + }).on(copy.events.COPY_FILE_COMPLETE, () => { |
| 302 | + logger.debug( |
| 303 | + `Copied JavaScript files from ${src} to ${dest}` |
286 | 304 | );
|
287 |
| - }, Promise.resolve()) |
| 305 | + }); |
| 306 | + }); |
| 307 | + return Promise.all(concat(allPatternsPromise, allJS)) |
288 | 308 | .then(() => {
|
289 | 309 | // Saves the pattern graph when all files have been compiled
|
290 | 310 | PatternGraph.storeToFile(patternlab);
|
|
0 commit comments