quackage 1.0.63 → 1.0.64

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "quackage",
3
- "version": "1.0.63",
3
+ "version": "1.0.64",
4
4
  "description": "Building. Testing. Quacking. Reloading.",
5
5
  "main": "source/Quackage-CLIProgram.js",
6
6
  "scripts": {
@@ -336,39 +336,67 @@ ${tmpExampleListItems} </ul>
336
336
  }
337
337
 
338
338
  let tmpNpxLocation = this.resolveExecutable('npx');
339
+ let tmpNpmLocation = this.resolveExecutable('npm');
339
340
 
340
- this.fable.QuackageProcess.execute(
341
- tmpNpxLocation,
342
- ['quack', 'build'],
343
- { cwd: pExample.Path },
344
- (pBuildError) =>
345
- {
346
- if (pBuildError)
347
- {
348
- this.log.error(`Build error in [${pExample.Name}]: ${pBuildError.message}`);
349
- }
350
-
351
- if (tmpPackage.copyFiles || tmpPackage.copyFilesSettings)
341
+ // Install dependencies if node_modules does not exist
342
+ let tmpNodeModulesPath = libPath.join(pExample.Path, 'node_modules');
343
+ let tmpRunBuild = () =>
344
+ {
345
+ this.fable.QuackageProcess.execute(
346
+ tmpNpxLocation,
347
+ ['quack', 'build'],
348
+ { cwd: pExample.Path },
349
+ (pBuildError) =>
352
350
  {
353
- this.log.info(`Copying files for [${pExample.Name}] ...`);
354
- this.fable.QuackageProcess.execute(
355
- tmpNpxLocation,
356
- ['quack', 'copy'],
357
- { cwd: pExample.Path },
358
- (pCopyError) =>
359
- {
360
- if (pCopyError)
351
+ if (pBuildError)
352
+ {
353
+ this.log.error(`Build error in [${pExample.Name}]: ${pBuildError.message}`);
354
+ }
355
+
356
+ if (tmpPackage.copyFiles || tmpPackage.copyFilesSettings)
357
+ {
358
+ this.log.info(`Copying files for [${pExample.Name}] ...`);
359
+ this.fable.QuackageProcess.execute(
360
+ tmpNpxLocation,
361
+ ['quack', 'copy'],
362
+ { cwd: pExample.Path },
363
+ (pCopyError) =>
361
364
  {
362
- this.log.error(`Copy error in [${pExample.Name}]: ${pCopyError.message}`);
363
- }
364
- return fExampleCallback();
365
- });
366
- }
367
- else
365
+ if (pCopyError)
366
+ {
367
+ this.log.error(`Copy error in [${pExample.Name}]: ${pCopyError.message}`);
368
+ }
369
+ return fExampleCallback();
370
+ });
371
+ }
372
+ else
373
+ {
374
+ return fExampleCallback();
375
+ }
376
+ });
377
+ };
378
+
379
+ if (!libFS.existsSync(tmpNodeModulesPath))
380
+ {
381
+ this.log.info(`Installing dependencies for [${pExample.Name}] ...`);
382
+ this.fable.QuackageProcess.execute(
383
+ tmpNpmLocation,
384
+ ['install'],
385
+ { cwd: pExample.Path },
386
+ (pInstallError) =>
368
387
  {
369
- return fExampleCallback();
370
- }
371
- });
388
+ if (pInstallError)
389
+ {
390
+ this.log.error(`Install error in [${pExample.Name}]: ${pInstallError.message}`);
391
+ return fExampleCallback();
392
+ }
393
+ tmpRunBuild();
394
+ });
395
+ }
396
+ else
397
+ {
398
+ tmpRunBuild();
399
+ }
372
400
  },
373
401
  (pError) =>
374
402
  {