refactor pipeline to remove duplicated code
This commit is contained in:
parent
80e8f6323a
commit
d09b94a5db
|
@ -55,26 +55,7 @@ class Pipeline {
|
|||
async.waterfall([
|
||||
|
||||
function findImports(next) {
|
||||
webpack({
|
||||
entry: utils.joinPath(fs.dappPath(), file.filename),
|
||||
output: {
|
||||
libraryTarget: 'umd',
|
||||
path: utils.joinPath(fs.dappPath(), '.embark'),
|
||||
filename: file.filename
|
||||
},
|
||||
resolve: {
|
||||
alias: importsList,
|
||||
modules: [
|
||||
fs.embarkPath('node_modules'),
|
||||
utils.joinPath(fs.dappPath(), 'node_modules')
|
||||
]
|
||||
},
|
||||
externals: function(context, request, callback) {
|
||||
callback();
|
||||
}
|
||||
}).run((_err, _stats) => {
|
||||
next();
|
||||
});
|
||||
self.webpackRun(file.filename, {}, false, importsList, next);
|
||||
},
|
||||
|
||||
function changeCwd(next) {
|
||||
|
@ -84,20 +65,7 @@ class Pipeline {
|
|||
},
|
||||
|
||||
function findImportsPhase2(next) {
|
||||
webpack({
|
||||
entry: utils.joinPath(fs.dappPath(), file.filename),
|
||||
output: {
|
||||
libraryTarget: 'umd',
|
||||
path: utils.joinPath(fs.dappPath(), '.embark'),
|
||||
filename: file.filename
|
||||
},
|
||||
resolve: {
|
||||
alias: importsList,
|
||||
modules: [
|
||||
fs.embarkPath('node_modules'),
|
||||
utils.joinPath(fs.dappPath(), 'node_modules')
|
||||
]
|
||||
},
|
||||
self.webpackRun(file.filename, {
|
||||
externals: function(context, request, callback) {
|
||||
if (request === utils.joinPath(fs.dappPath(), file.filename)) {
|
||||
callback();
|
||||
|
@ -111,89 +79,12 @@ class Pipeline {
|
|||
}
|
||||
callback(null, "amd " + Math.random());
|
||||
}
|
||||
},
|
||||
module: {
|
||||
rules: [
|
||||
{
|
||||
test: /\.css$/,
|
||||
use: [{loader: "style-loader"}, {loader: "css-loader"}]
|
||||
},
|
||||
{
|
||||
test: /\.scss$/,
|
||||
use: [{loader: "style-loader"}, {loader: "css-loader"}]
|
||||
},
|
||||
{
|
||||
test: /\.(png|woff|woff2|eot|ttf|svg)$/,
|
||||
loader: 'url-loader?limit=100000'
|
||||
},
|
||||
{
|
||||
test: /\.js$/,
|
||||
loader: "babel-loader",
|
||||
exclude: /(node_modules|bower_components)/,
|
||||
options: {
|
||||
presets: ['es2016', 'es2017', 'react'],
|
||||
plugins: ["babel-plugin-webpack-aliases"]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}).run((_err, _stats) => {
|
||||
next();
|
||||
});
|
||||
|
||||
}, true, importsList, next);
|
||||
},
|
||||
|
||||
function runWebpack(next) {
|
||||
webpack({
|
||||
entry: utils.joinPath(fs.dappPath(), file.filename),
|
||||
output: {
|
||||
libraryTarget: 'umd',
|
||||
path: utils.joinPath(fs.dappPath(), '.embark'),
|
||||
filename: file.filename
|
||||
},
|
||||
resolve: {
|
||||
alias: importsList,
|
||||
modules: [
|
||||
fs.embarkPath('node_modules'),
|
||||
utils.joinPath(fs.dappPath(), 'node_modules')
|
||||
]
|
||||
},
|
||||
externals: function(context, request, callback) {
|
||||
if (request === "Embark/contracts/all") {
|
||||
return callback(null, fs.readFileSync(utils.joinPath(fs.dappPath(), '.embark', 'embark.js')));
|
||||
// should be .toString() ?
|
||||
}
|
||||
callback();
|
||||
},
|
||||
module: {
|
||||
rules: [
|
||||
{
|
||||
test: /\.css$/,
|
||||
use: [{loader: "style-loader"}, {loader: "css-loader"}]
|
||||
},
|
||||
{
|
||||
test: /\.scss$/,
|
||||
use: [{loader: "style-loader"}, {loader: "css-loader"}]
|
||||
},
|
||||
{
|
||||
test: /\.(png|woff|woff2|eot|ttf|svg)$/,
|
||||
loader: 'url-loader?limit=100000'
|
||||
},
|
||||
{
|
||||
test: /\.js$/,
|
||||
loader: "babel-loader",
|
||||
exclude: /(node_modules|bower_components)/,
|
||||
options: {
|
||||
presets: ['es2016', 'es2017', 'react'],
|
||||
plugins: ["babel-plugin-webpack-aliases"]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}).run((_err, _stats) => {
|
||||
next();
|
||||
});
|
||||
|
||||
self.webpackRun(file.filename, {}, true, importsList, next);
|
||||
},
|
||||
|
||||
function changeCwdBack(next) {
|
||||
|
@ -261,6 +152,61 @@ class Pipeline {
|
|||
});
|
||||
}
|
||||
|
||||
webpackRun(filename, options, includeModules, importsList, callback) {
|
||||
let defaultOptions = {
|
||||
entry: utils.joinPath(fs.dappPath(), filename),
|
||||
output: {
|
||||
libraryTarget: 'umd',
|
||||
path: utils.joinPath(fs.dappPath(), '.embark'),
|
||||
filename: filename
|
||||
},
|
||||
resolve: {
|
||||
alias: importsList,
|
||||
modules: [
|
||||
fs.embarkPath('node_modules'),
|
||||
utils.joinPath(fs.dappPath(), 'node_modules')
|
||||
]
|
||||
},
|
||||
externals: function(context, request, callback) {
|
||||
callback();
|
||||
}
|
||||
};
|
||||
|
||||
let webpackOptions = utils.recursiveMerge(defaultOptions, options);
|
||||
|
||||
if (includeModules) {
|
||||
webpackOptions.module = {
|
||||
rules: [
|
||||
{
|
||||
test: /\.css$/,
|
||||
use: [{loader: "style-loader"}, {loader: "css-loader"}]
|
||||
},
|
||||
{
|
||||
test: /\.scss$/,
|
||||
use: [{loader: "style-loader"}, {loader: "css-loader"}]
|
||||
},
|
||||
{
|
||||
test: /\.(png|woff|woff2|eot|ttf|svg)$/,
|
||||
loader: 'url-loader?limit=100000'
|
||||
},
|
||||
{
|
||||
test: /\.js$/,
|
||||
loader: "babel-loader",
|
||||
exclude: /(node_modules|bower_components)/,
|
||||
options: {
|
||||
presets: ['es2016', 'es2017', 'react'],
|
||||
plugins: ["babel-plugin-webpack-aliases"]
|
||||
}
|
||||
}
|
||||
]
|
||||
};
|
||||
}
|
||||
|
||||
webpack(webpackOptions).run((_err, _stats) => {
|
||||
callback();
|
||||
});
|
||||
}
|
||||
|
||||
buildContracts(contractsJSON) {
|
||||
fs.mkdirpSync(utils.joinPath(fs.dappPath(), this.buildDir, 'contracts'));
|
||||
|
||||
|
|
Loading…
Reference in New Issue