Sfoglia il codice sorgente

Npm link additional packages

sebavan 6 anni fa
parent
commit
f5f55b3af3

+ 3 - 1
Tools/Config/config.js

@@ -41,9 +41,11 @@ config.computed = {
 
 config.additionalNpmPackages.forEach(package => {
     let packagePath = path.join(rootFolder, package.path);
+    let packageDevDirectory = path.join(localDevUMDFolder, package.name);
 
     package.computed = {
-        path: packagePath
+        path: packagePath,
+        packageDevDirectory
     };
 });
 

+ 4 - 5
Tools/Publisher/tasks/main.js

@@ -11,21 +11,20 @@ const processLegacyPackages = require("./processLegacyPackages");
 const processEs6Packages = require("./processEs6Packages");
 const prepareUMDDevPackages = require("./prepareUMDDevPackages");
 const prepareEs6DevPackages = require("./prepareEs6DevPackages");
+const prepareAdditionalDevPackages = require("./prepareAdditionalDevPackages");
 
 // Path management.
 process.env.PATH += (path.delimiter + path.join(__dirname, '../node_modules', '.bin'));
 
 const createVersion = function(version, options) {
     options = options || {
-        additional: true,
         umd: true,
         es6: true
     };
 
-    if (options.additional) {
-        // Publish additional packages from the config.
-        processAdditionalPackages(version);
-    }
+    // Publish additional packages from the config.
+    processAdditionalPackages(version);
+    prepareAdditionalDevPackages();
 
     if (options.umd) {
         // Create the packages and publish if needed.

+ 44 - 0
Tools/Publisher/tasks/prepareAdditionalDevPackages.js

@@ -0,0 +1,44 @@
+// Dependecies.
+const fs = require('fs-extra');
+const rmDir = require("../../NodeHelpers/rmDir");
+const colorConsole = require("../../NodeHelpers/colorConsole");
+var shelljs = require("shelljs");
+
+// Global Variables.
+const config = require("../../Config/config.js");
+
+/**
+ * Prepare a Additional Dev folder npm linked for test purpose.
+ */
+function prepareAdditionalDevPackages() {
+    config.additionalNpmPackages.forEach(package => {
+        colorConsole.log("Prepare " + "AdditionalDev".magenta + " Package: " + package.name.blue.bold);
+
+        let packagePath = package.computed.path;
+        let packageDevPath = package.computed.packageDevDirectory;
+
+        colorConsole.log("    Cleanup " + packageDevPath.cyan);
+        rmDir(packageDevPath);
+
+        colorConsole.log("    Copy Package folder " + packagePath.cyan + " to " + packageDevPath.cyan);
+        fs.copySync(packagePath, packageDevPath);
+
+        colorConsole.log("    Execute Npm Link command");
+        const command = `npm link`;
+        const result = shelljs.exec(command, { 
+            async: false,
+            cwd: packageDevPath
+        });
+
+        if (result.code != 0) {
+            throw "Failed to link the ES6 package."
+        }
+
+        colorConsole.emptyLine();
+    });
+}
+
+/**
+ * Main function driving the publication.
+ */
+module.exports = prepareAdditionalDevPackages;

+ 1 - 1
Tools/Publisher/tasks/prepareEs6DevPackages.js

@@ -30,7 +30,7 @@ function prepareEs6DevPackages() {
         const packageES6DevJSONPath = path.join(packageDevPath, "package.json");
         const packageES6DevJSON = require(packageES6DevJSONPath);
         for (let dependency in packageES6DevJSON.dependencies) {
-            if (dependency.indexOf("@babylon") > -1) {
+            if (dependency.indexOf("babylon") > -1) {
                 colorConsole.log("    Execute Npm Link " + dependency.yellow);
                 const command = `npm link ${dependency}`;
                 const result = shelljs.exec(command, {