refactor pipeline to remove duplicated code
This commit is contained in:
parent
80e8f6323a
commit
d09b94a5db
|
@ -55,26 +55,7 @@ class Pipeline {
|
||||||
async.waterfall([
|
async.waterfall([
|
||||||
|
|
||||||
function findImports(next) {
|
function findImports(next) {
|
||||||
webpack({
|
self.webpackRun(file.filename, {}, false, importsList, next);
|
||||||
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();
|
|
||||||
});
|
|
||||||
},
|
},
|
||||||
|
|
||||||
function changeCwd(next) {
|
function changeCwd(next) {
|
||||||
|
@ -84,20 +65,7 @@ class Pipeline {
|
||||||
},
|
},
|
||||||
|
|
||||||
function findImportsPhase2(next) {
|
function findImportsPhase2(next) {
|
||||||
webpack({
|
self.webpackRun(file.filename, {
|
||||||
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) {
|
externals: function(context, request, callback) {
|
||||||
if (request === utils.joinPath(fs.dappPath(), file.filename)) {
|
if (request === utils.joinPath(fs.dappPath(), file.filename)) {
|
||||||
callback();
|
callback();
|
||||||
|
@ -111,89 +79,12 @@ class Pipeline {
|
||||||
}
|
}
|
||||||
callback(null, "amd " + Math.random());
|
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) => {
|
}, true, importsList, next);
|
||||||
next();
|
|
||||||
});
|
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
function runWebpack(next) {
|
function runWebpack(next) {
|
||||||
webpack({
|
self.webpackRun(file.filename, {}, true, importsList, next);
|
||||||
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();
|
|
||||||
});
|
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
function changeCwdBack(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) {
|
buildContracts(contractsJSON) {
|
||||||
fs.mkdirpSync(utils.joinPath(fs.dappPath(), this.buildDir, 'contracts'));
|
fs.mkdirpSync(utils.joinPath(fs.dappPath(), this.buildDir, 'contracts'));
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue