tasks/pack-web-dependencies.js
/* eslint-env node */
"use strict";
module.exports = function (grunt) {
var _ = require("lodash"),
common = require("./lib/common")(grunt),
build = require("./build")(grunt),
glob = require("glob"),
path = require("path"),
spawn = require("child_process").spawn;
grunt.registerTask("pack-web-dependencies", "Runs webpack on stuff we need to use from browser", function () {
var done = this.async();
var webpackPath = path.resolve(
__dirname,
"..",
"node_modules",
".bin",
process.platform === "win32" ? "webpack.cmd" : "webpack"
);
var webpackTasks = [
[
"./node_modules/semver/semver.js",
"./src/thirdparty/semver.browser.js",
"-p",
"--output-library-target=amd"
],
[
"./src/node_modules/preact/dist/preact.min.js",
"./src/thirdparty/preact/preact.js",
"-p",
"--output-library-target=amd"
],
[
"./src/node_modules/preact-test-utils/lib/index.js",
"./src/thirdparty/preact-test-utils/preact-test-utils.js",
"-p",
"--output-library-target=amd"
]
];
var doneWithWebpackTask = _.after(webpackTasks.length, done);
webpackTasks.forEach(function (args) {
var wp = spawn(webpackPath, args, {
cwd: path.resolve(__dirname, "..")
});
wp.stdout.on('data', function (data) {
console.log("webpack-stdout: " + data.toString());
});
wp.stderr.on('data', function (data) {
console.log("webpack-stderr: " + data.toString());
});
wp.on('close', function (code) {
console.log("webpack-exit code " + code.toString());
return code === 0 ? doneWithWebpackTask() : done(false);
});
});
});
};