private ITaskRunnerNode LoadHierarchy(string configPath)
        {
            string configFileName = Path.GetFileName(configPath);
            string cwd            = Path.GetDirectoryName(configPath);

            Telemetry.TrackEvent(configFileName.ToLowerInvariant());

            ITaskRunnerNode root = new TaskRunnerNode("WebPack");

            const string DEVELOPMENT_TASK_NAME = "Development";
            const string PRODUCTION_TASK_NAME  = "Production";

            // Run
            TaskRunnerNode build    = new TaskRunnerNode("Run", false);
            TaskRunnerNode buildDev = CreateTask(cwd, $"{build.Name} - {DEVELOPMENT_TASK_NAME}", "Runs 'webpack -d'", "/c SET NODE_ENV=development&& webpack -d --color");

            build.Children.Add(buildDev);

            TaskRunnerNode buildProd = CreateTask(cwd, $"{build.Name} - {PRODUCTION_TASK_NAME}", "Runs 'webpack -p'", "/c SET NODE_ENV=production&& webpack -p --color");

            build.Children.Add(buildProd);

            root.Children.Add(build);

            // Profile
            TaskRunnerNode profile    = new TaskRunnerNode("Profile", false);
            TaskRunnerNode profileDev = CreateTask(cwd, $"{profile.Name} - {DEVELOPMENT_TASK_NAME}", "Runs 'webpack -d --profile'", "/c SET NODE_ENV=development&& webpack -d --profile --json > stats.json && echo \x1B[32mThe analyse tool JSON file can be found at ./stats.json. Upload the file at http://webpack.github.io/analyse/.");

            profile.Children.Add(profileDev);

            TaskRunnerNode profileProd = CreateTask(cwd, $"{profile.Name} - {PRODUCTION_TASK_NAME}", "Runs 'webpack -p --profile'", "/c SET NODE_ENV=production&& webpack -p --profile --json > stats.json && echo \x1B[32mThe analyse tool JSON file can be found at ./stats.json. Upload the file at http://webpack.github.io/analyse/.");

            profile.Children.Add(profileProd);

            root.Children.Add(profile);

            // Start
            TaskRunnerNode start    = new TaskRunnerNode("Serve", false);
            TaskRunnerNode startDev = CreateTask(cwd, "Hot", "Runs 'webpack-dev-server --hot'", "/c SET NODE_ENV=development&& webpack-dev-server --hot --color");

            start.Children.Add(startDev);

            TaskRunnerNode startProd = CreateTask(cwd, "Cold", "Runs 'webpack-dev-server'", "/c SET NODE_ENV=development&& webpack-dev-server --color");

            start.Children.Add(startProd);

            root.Children.Add(start);

            // Watch
            TaskRunnerNode watch    = new TaskRunnerNode("Watch", false);
            TaskRunnerNode watchDev = CreateTask(cwd, $"{watch.Name} - {DEVELOPMENT_TASK_NAME}", "Runs 'webpack -d --watch'", "/c SET NODE_ENV=development&& webpack -d --watch --color");

            watch.Children.Add(watchDev);

            TaskRunnerNode watchProd = CreateTask(cwd, $"{watch.Name} - {PRODUCTION_TASK_NAME}", "Runs 'webpack -p --watch'", "/c SET NODE_ENV=production&& webpack -p --watch --color");

            watch.Children.Add(watchProd);

            root.Children.Add(watch);

            return(root);
        }
Example #2
0
 public bool SaveBindings(string configPath, string bindingsXml)
 {
     Telemetry.TrackEvent("Updated bindings");
     return(TaskRunnerFileBindingsHelper.SaveBindings(configPath, bindingsXml));
 }