Build update
This commit is contained in:
parent
0e7c115b73
commit
317a59d550
@ -27,16 +27,16 @@
|
|||||||
],
|
],
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "npm run build:lib && npm run build:app",
|
"build": "npm run build:lib && npm run build:app",
|
||||||
"build:app": "webpack --config webpack/app",
|
"build:app": "parallel-webpack -p=2 --config webpack/app",
|
||||||
"build:lib": "webpack --config webpack/libraries",
|
"build:lib": "parallel-webpack -p=2 --config webpack/libraries",
|
||||||
"build:markdown": "babel-node ./scripts/build-rpc-markdown.js",
|
"build:markdown": "babel-node ./scripts/build-rpc-markdown.js",
|
||||||
"build:json": "babel-node ./scripts/build-rpc-json.js",
|
"build:json": "babel-node ./scripts/build-rpc-json.js",
|
||||||
"build:embed": "EMBED=1 node webpack/embed",
|
"build:embed": "EMBED=1 node webpack/embed",
|
||||||
"build:i18n": "npm run clean && npm run build && babel-node ./scripts/build-i18n.js",
|
"build:i18n": "npm run clean && npm run build && babel-node ./scripts/build-i18n.js",
|
||||||
"ci:build": "npm run ci:build:lib && npm run ci:build:app && npm run ci:build:embed",
|
"ci:build": "npm run ci:build:lib && npm run ci:build:app && npm run ci:build:embed",
|
||||||
"ci:build:app": "NODE_ENV=production webpack --config webpack/app",
|
"ci:build:app": "NODE_ENV=production parallel-webpack -p=2 --config webpack/app",
|
||||||
"ci:build:lib": "NODE_ENV=production webpack --config webpack/libraries",
|
"ci:build:lib": "NODE_ENV=production parallel-webpack -p=2 --config webpack/libraries",
|
||||||
"ci:build:npm": "NODE_ENV=production webpack --config webpack/npm",
|
"ci:build:npm": "NODE_ENV=production parallel-webpack -p=2 --config webpack/npm",
|
||||||
"ci:build:jsonrpc": "babel-node ./scripts/build-rpc-json.js --output .npmjs/jsonrpc",
|
"ci:build:jsonrpc": "babel-node ./scripts/build-rpc-json.js --output .npmjs/jsonrpc",
|
||||||
"ci:build:embed": "NODE_ENV=production EMBED=1 node webpack/embed",
|
"ci:build:embed": "NODE_ENV=production EMBED=1 node webpack/embed",
|
||||||
"clean": "rm -rf ./.build ./.coverage ./.happypack ./build ./node_modules/.cache",
|
"clean": "rm -rf ./.build ./.coverage ./.happypack ./build ./node_modules/.cache",
|
||||||
|
@ -49,218 +49,224 @@ const entry = isEmbed
|
|||||||
index: './index.js'
|
index: './index.js'
|
||||||
});
|
});
|
||||||
|
|
||||||
module.exports = {
|
module.exports = Object.keys(entry).map((entryName) => {
|
||||||
cache: !isProd,
|
const entrySrc = entry[entryName];
|
||||||
devtool: isProd ? '#hidden-source-map' : '#source-map',
|
|
||||||
|
|
||||||
context: path.join(__dirname, '../src'),
|
return {
|
||||||
entry,
|
cache: !isProd,
|
||||||
output: {
|
devtool: isProd ? '#hidden-source-map' : '#source-map',
|
||||||
path: path.join(__dirname, '../', DEST),
|
|
||||||
filename: '[name].js'
|
|
||||||
},
|
|
||||||
|
|
||||||
module: {
|
context: path.join(__dirname, '../src'),
|
||||||
rules: [
|
entry: {
|
||||||
rulesParity,
|
[entryName]: entrySrc
|
||||||
rulesEs6,
|
},
|
||||||
{
|
output: {
|
||||||
test: /\.js$/,
|
path: path.join(__dirname, '../', DEST),
|
||||||
exclude: /(node_modules)/,
|
filename: '[name].js'
|
||||||
use: [ 'babel-loader' ]
|
},
|
||||||
},
|
|
||||||
{
|
module: {
|
||||||
test: /\.json$/,
|
rules: [
|
||||||
use: [ 'json-loader' ]
|
rulesParity,
|
||||||
},
|
rulesEs6,
|
||||||
{
|
{
|
||||||
test: /\.ejs$/,
|
test: /\.js$/,
|
||||||
use: [ 'ejs-loader' ]
|
exclude: /(node_modules)/,
|
||||||
},
|
use: [ 'babel-loader' ]
|
||||||
{
|
},
|
||||||
test: /\.html$/,
|
{
|
||||||
use: [
|
test: /\.json$/,
|
||||||
{
|
use: [ 'json-loader' ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
test: /\.ejs$/,
|
||||||
|
use: [ 'ejs-loader' ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
test: /\.html$/,
|
||||||
|
use: [
|
||||||
|
{
|
||||||
|
loader: 'file-loader',
|
||||||
|
options: {
|
||||||
|
name: '[name].[ext]'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
'extract-loader',
|
||||||
|
{
|
||||||
|
loader: 'html-loader',
|
||||||
|
options: {
|
||||||
|
root: path.resolve(__dirname, '../assets/images'),
|
||||||
|
attrs: ['img:src', 'link:href']
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
test: /\.md$/,
|
||||||
|
use: [ 'html-loader', 'markdown-loader' ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
test: /\.css$/,
|
||||||
|
include: /node_modules\/(?!@parity)*/,
|
||||||
|
use: [ 'style-loader', 'css-loader' ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
test: /\.css$/,
|
||||||
|
exclude: /node_modules\/(?!@parity)*/,
|
||||||
|
use: [
|
||||||
|
'style-loader',
|
||||||
|
{
|
||||||
|
loader: 'css-loader',
|
||||||
|
options: {
|
||||||
|
importLoaders: 1,
|
||||||
|
localIdentName: '[name]_[local]_[hash:base64:10]',
|
||||||
|
minimize: true,
|
||||||
|
modules: true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
loader: 'postcss-loader',
|
||||||
|
options: {
|
||||||
|
plugins: (loader) => [
|
||||||
|
require('postcss-import'),
|
||||||
|
require('postcss-nested'),
|
||||||
|
require('postcss-simple-vars')
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
test: /\.(png|jpg)$/,
|
||||||
|
use: [ {
|
||||||
loader: 'file-loader',
|
loader: 'file-loader',
|
||||||
options: {
|
options: {
|
||||||
name: '[name].[ext]'
|
name: 'assets/[name].[hash].[ext]'
|
||||||
}
|
}
|
||||||
},
|
} ]
|
||||||
'extract-loader',
|
},
|
||||||
{
|
{
|
||||||
loader: 'html-loader',
|
test: /\.(woff|woff2|ttf|eot|otf)(\?v=[0-9]\.[0-9]\.[0-9])?$/,
|
||||||
|
use: [ {
|
||||||
|
loader: 'file-loader',
|
||||||
options: {
|
options: {
|
||||||
root: path.resolve(__dirname, '../assets/images'),
|
name: 'fonts/[name][hash].[ext]'
|
||||||
attrs: ['img:src', 'link:href']
|
|
||||||
}
|
}
|
||||||
}
|
} ]
|
||||||
]
|
},
|
||||||
},
|
{
|
||||||
{
|
test: /parity-logo-white-no-text\.svg/,
|
||||||
test: /\.md$/,
|
use: [ 'url-loader' ]
|
||||||
use: [ 'html-loader', 'markdown-loader' ]
|
},
|
||||||
},
|
{
|
||||||
{
|
test: /\.svg(\?v=[0-9]\.[0-9]\.[0-9])?$/,
|
||||||
test: /\.css$/,
|
exclude: [ /parity-logo-white-no-text\.svg/ ],
|
||||||
include: /node_modules\/(?!@parity)*/,
|
use: [ {
|
||||||
use: [ 'style-loader', 'css-loader' ]
|
loader: 'file-loader',
|
||||||
},
|
|
||||||
{
|
|
||||||
test: /\.css$/,
|
|
||||||
exclude: /node_modules\/(?!@parity)*/,
|
|
||||||
use: [
|
|
||||||
'style-loader',
|
|
||||||
{
|
|
||||||
loader: 'css-loader',
|
|
||||||
options: {
|
options: {
|
||||||
importLoaders: 1,
|
name: 'assets/[name].[hash].[ext]'
|
||||||
localIdentName: '[name]_[local]_[hash:base64:10]',
|
|
||||||
minimize: true,
|
|
||||||
modules: true
|
|
||||||
}
|
}
|
||||||
},
|
} ]
|
||||||
{
|
}
|
||||||
loader: 'postcss-loader',
|
],
|
||||||
options: {
|
noParse: [
|
||||||
plugins: (loader) => [
|
/node_modules\/sinon/
|
||||||
require('postcss-import'),
|
]
|
||||||
require('postcss-nested'),
|
|
||||||
require('postcss-simple-vars')
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
test: /\.(png|jpg)$/,
|
|
||||||
use: [ {
|
|
||||||
loader: 'file-loader',
|
|
||||||
options: {
|
|
||||||
name: 'assets/[name].[hash].[ext]'
|
|
||||||
}
|
|
||||||
} ]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
test: /\.(woff|woff2|ttf|eot|otf)(\?v=[0-9]\.[0-9]\.[0-9])?$/,
|
|
||||||
use: [ {
|
|
||||||
loader: 'file-loader',
|
|
||||||
options: {
|
|
||||||
name: 'fonts/[name][hash].[ext]'
|
|
||||||
}
|
|
||||||
} ]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
test: /parity-logo-white-no-text\.svg/,
|
|
||||||
use: [ 'url-loader' ]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
test: /\.svg(\?v=[0-9]\.[0-9]\.[0-9])?$/,
|
|
||||||
exclude: [ /parity-logo-white-no-text\.svg/ ],
|
|
||||||
use: [ {
|
|
||||||
loader: 'file-loader',
|
|
||||||
options: {
|
|
||||||
name: 'assets/[name].[hash].[ext]'
|
|
||||||
}
|
|
||||||
} ]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
noParse: [
|
|
||||||
/node_modules\/sinon/
|
|
||||||
]
|
|
||||||
},
|
|
||||||
|
|
||||||
resolve: {
|
|
||||||
alias: {
|
|
||||||
'~': path.resolve(__dirname, '..'),
|
|
||||||
'@parity/abi': path.resolve(__dirname, '../node_modules/@parity/abi'),
|
|
||||||
'@parity/api': path.resolve(__dirname, '../node_modules/@parity/api'),
|
|
||||||
'@parity/etherscan': path.resolve(__dirname, '../node_modules/@parity/etherscan'),
|
|
||||||
'@parity/jsonrpc': path.resolve(__dirname, '../node_modules/@parity/jsonrpc'),
|
|
||||||
'@parity/parity.js': path.resolve(__dirname, '../node_modules/@parity/parity.js'),
|
|
||||||
'@parity/shared': path.resolve(__dirname, '../node_modules/@parity/shared'),
|
|
||||||
'@parity/ui': path.resolve(__dirname, '../node_modules/@parity/ui'),
|
|
||||||
'@parity/wordlist': path.resolve(__dirname, '../node_modules/@parity/wordlist'),
|
|
||||||
'@parity': path.resolve(__dirname, '../packages')
|
|
||||||
},
|
},
|
||||||
modules: [
|
|
||||||
path.join(__dirname, '../node_modules')
|
|
||||||
],
|
|
||||||
extensions: ['.json', '.js', '.jsx'],
|
|
||||||
unsafeCache: true
|
|
||||||
},
|
|
||||||
|
|
||||||
node: {
|
resolve: {
|
||||||
fs: 'empty'
|
alias: {
|
||||||
},
|
'~': path.resolve(__dirname, '..'),
|
||||||
|
'@parity/abi': path.resolve(__dirname, '../node_modules/@parity/abi'),
|
||||||
|
'@parity/api': path.resolve(__dirname, '../node_modules/@parity/api'),
|
||||||
|
'@parity/etherscan': path.resolve(__dirname, '../node_modules/@parity/etherscan'),
|
||||||
|
'@parity/jsonrpc': path.resolve(__dirname, '../node_modules/@parity/jsonrpc'),
|
||||||
|
'@parity/parity.js': path.resolve(__dirname, '../node_modules/@parity/parity.js'),
|
||||||
|
'@parity/shared': path.resolve(__dirname, '../node_modules/@parity/shared'),
|
||||||
|
'@parity/ui': path.resolve(__dirname, '../node_modules/@parity/ui'),
|
||||||
|
'@parity/wordlist': path.resolve(__dirname, '../node_modules/@parity/wordlist'),
|
||||||
|
'@parity': path.resolve(__dirname, '../packages')
|
||||||
|
},
|
||||||
|
modules: [
|
||||||
|
path.join(__dirname, '../node_modules')
|
||||||
|
],
|
||||||
|
extensions: ['.json', '.js', '.jsx'],
|
||||||
|
unsafeCache: true
|
||||||
|
},
|
||||||
|
|
||||||
plugins: (function () {
|
node: {
|
||||||
const DappsHTMLInjection = []
|
fs: 'empty'
|
||||||
.concat(DAPPS_BUILTIN, DAPPS_VIEWS)
|
},
|
||||||
.filter((dapp) => !dapp.skipBuild)
|
|
||||||
.map((dapp) => {
|
plugins: (function () {
|
||||||
return new HtmlWebpackPlugin({
|
const DappsHTMLInjection = []
|
||||||
title: dapp.name,
|
.concat(DAPPS_BUILTIN, DAPPS_VIEWS)
|
||||||
filename: dapp.url + '.html',
|
.filter((dapp) => !dapp.skipBuild)
|
||||||
template: '../packages/dapps/index.ejs',
|
.map((dapp) => {
|
||||||
favicon: FAVICON,
|
return new HtmlWebpackPlugin({
|
||||||
secure: dapp.secure,
|
title: dapp.name,
|
||||||
chunks: [ dapp.url ]
|
filename: dapp.url + '.html',
|
||||||
|
template: '../packages/dapps/index.ejs',
|
||||||
|
favicon: FAVICON,
|
||||||
|
secure: dapp.secure,
|
||||||
|
chunks: [ dapp.url ]
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
|
||||||
|
|
||||||
let plugins = Shared.getPlugins().concat(
|
let plugins = Shared.getPlugins().concat(
|
||||||
new WebpackErrorNotificationPlugin()
|
new WebpackErrorNotificationPlugin()
|
||||||
);
|
|
||||||
|
|
||||||
if (!isEmbed) {
|
|
||||||
plugins = [].concat(
|
|
||||||
plugins,
|
|
||||||
|
|
||||||
new HtmlWebpackPlugin({
|
|
||||||
title: 'Parity',
|
|
||||||
filename: 'index.html',
|
|
||||||
template: './index.ejs',
|
|
||||||
favicon: FAVICON,
|
|
||||||
chunks: [ 'index' ]
|
|
||||||
}),
|
|
||||||
|
|
||||||
new ServiceWorkerWebpackPlugin({
|
|
||||||
entry: path.join(__dirname, '../src/serviceWorker.js')
|
|
||||||
}),
|
|
||||||
|
|
||||||
DappsHTMLInjection,
|
|
||||||
|
|
||||||
new CopyWebpackPlugin([
|
|
||||||
{ from: './error_pages.css', to: 'styles.css' },
|
|
||||||
{ from: '../packages/dapps/static' }
|
|
||||||
], {})
|
|
||||||
);
|
);
|
||||||
}
|
|
||||||
|
|
||||||
if (isEmbed) {
|
if (!isEmbed) {
|
||||||
plugins.push(
|
plugins = [].concat(
|
||||||
new HtmlWebpackPlugin({
|
plugins,
|
||||||
title: 'Parity Bar',
|
|
||||||
filename: 'embed.html',
|
|
||||||
template: './index.ejs',
|
|
||||||
favicon: FAVICON,
|
|
||||||
chunks: [ 'embed' ]
|
|
||||||
})
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
// if (!isAnalize && !isProd) {
|
new HtmlWebpackPlugin({
|
||||||
// const DEST_I18N = path.join(__dirname, '..', DEST, 'i18n');
|
title: 'Parity',
|
||||||
//
|
filename: 'index.html',
|
||||||
// plugins.push(
|
template: './index.ejs',
|
||||||
// new ReactIntlAggregatePlugin({
|
favicon: FAVICON,
|
||||||
// messagesPattern: DEST_I18N + '/i18n/**/*.json',
|
chunks: [ 'index' ]
|
||||||
// aggregateOutputDir: DEST_I18N + '/i18n/',
|
}),
|
||||||
// aggregateFilename: 'en'
|
|
||||||
// })
|
|
||||||
// );
|
|
||||||
// }
|
|
||||||
|
|
||||||
return plugins;
|
new ServiceWorkerWebpackPlugin({
|
||||||
}())
|
entry: path.join(__dirname, '../src/serviceWorker.js')
|
||||||
};
|
}),
|
||||||
|
|
||||||
|
DappsHTMLInjection,
|
||||||
|
|
||||||
|
new CopyWebpackPlugin([
|
||||||
|
{ from: './error_pages.css', to: 'styles.css' },
|
||||||
|
{ from: '../packages/dapps/static' }
|
||||||
|
], {})
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isEmbed) {
|
||||||
|
plugins.push(
|
||||||
|
new HtmlWebpackPlugin({
|
||||||
|
title: 'Parity Bar',
|
||||||
|
filename: 'embed.html',
|
||||||
|
template: './index.ejs',
|
||||||
|
favicon: FAVICON,
|
||||||
|
chunks: [ 'embed' ]
|
||||||
|
})
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// if (!isAnalize && !isProd) {
|
||||||
|
// const DEST_I18N = path.join(__dirname, '..', DEST, 'i18n');
|
||||||
|
//
|
||||||
|
// plugins.push(
|
||||||
|
// new ReactIntlAggregatePlugin({
|
||||||
|
// messagesPattern: DEST_I18N + '/i18n/**/*.json',
|
||||||
|
// aggregateOutputDir: DEST_I18N + '/i18n/',
|
||||||
|
// aggregateFilename: 'en'
|
||||||
|
// })
|
||||||
|
// );
|
||||||
|
// }
|
||||||
|
|
||||||
|
return plugins;
|
||||||
|
}())
|
||||||
|
};
|
||||||
|
});
|
||||||
|
@ -24,61 +24,61 @@ const Shared = require('./shared');
|
|||||||
|
|
||||||
const DEST = process.env.BUILD_DEST || '.build';
|
const DEST = process.env.BUILD_DEST || '.build';
|
||||||
|
|
||||||
module.exports = {
|
module.exports = ['inject', 'parity', 'web3'].map((entryName) => {
|
||||||
context: path.join(__dirname, '../src'),
|
return {
|
||||||
entry: {
|
context: path.join(__dirname, '../src'),
|
||||||
inject: ['./inject.js'],
|
entry: {
|
||||||
parity: ['./inject.js'],
|
[entryName]: ['./inject.js']
|
||||||
web3: ['./inject.js']
|
},
|
||||||
},
|
output: {
|
||||||
output: {
|
path: path.join(__dirname, '../', DEST),
|
||||||
path: path.join(__dirname, '../', DEST),
|
filename: '[name].js',
|
||||||
filename: '[name].js',
|
library: '[name].js',
|
||||||
library: '[name].js',
|
libraryTarget: 'umd'
|
||||||
libraryTarget: 'umd'
|
},
|
||||||
},
|
|
||||||
|
|
||||||
resolve: {
|
resolve: {
|
||||||
alias: {
|
alias: {
|
||||||
'~': path.resolve(__dirname, '..'),
|
'~': path.resolve(__dirname, '..'),
|
||||||
'@parity/abi': path.resolve(__dirname, '../node_modules/@parity/abi'),
|
'@parity/abi': path.resolve(__dirname, '../node_modules/@parity/abi'),
|
||||||
'@parity/api': path.resolve(__dirname, '../node_modules/@parity/api'),
|
'@parity/api': path.resolve(__dirname, '../node_modules/@parity/api'),
|
||||||
'@parity/etherscan': path.resolve(__dirname, '../node_modules/@parity/etherscan'),
|
'@parity/etherscan': path.resolve(__dirname, '../node_modules/@parity/etherscan'),
|
||||||
'@parity/jsonrpc': path.resolve(__dirname, '../node_modules/@parity/jsonrpc'),
|
'@parity/jsonrpc': path.resolve(__dirname, '../node_modules/@parity/jsonrpc'),
|
||||||
'@parity/shared': path.resolve(__dirname, '../node_modules/@parity/shared'),
|
'@parity/shared': path.resolve(__dirname, '../node_modules/@parity/shared'),
|
||||||
'@parity/ui': path.resolve(__dirname, '../node_modules/@parity/ui'),
|
'@parity/ui': path.resolve(__dirname, '../node_modules/@parity/ui'),
|
||||||
'@parity/wordlist': path.resolve(__dirname, '../node_modules/@parity/wordlist'),
|
'@parity/wordlist': path.resolve(__dirname, '../node_modules/@parity/wordlist'),
|
||||||
'@parity': path.resolve(__dirname, '../packages')
|
'@parity': path.resolve(__dirname, '../packages')
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
node: {
|
|
||||||
fs: 'empty'
|
|
||||||
},
|
|
||||||
|
|
||||||
module: {
|
|
||||||
rules: [
|
|
||||||
rulesParity,
|
|
||||||
rulesEs6,
|
|
||||||
{
|
|
||||||
test: /\.js$/,
|
|
||||||
exclude: /node_modules/,
|
|
||||||
use: [ 'babel-loader' ]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
test: /\.json$/,
|
|
||||||
use: [ 'json-loader' ]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
test: /\.html$/,
|
|
||||||
use: [ {
|
|
||||||
loader: 'file-loader',
|
|
||||||
options: {
|
|
||||||
name: '[name].[ext]'
|
|
||||||
}
|
|
||||||
} ]
|
|
||||||
}
|
}
|
||||||
]
|
},
|
||||||
},
|
|
||||||
plugins: Shared.getPlugins()
|
node: {
|
||||||
};
|
fs: 'empty'
|
||||||
|
},
|
||||||
|
|
||||||
|
module: {
|
||||||
|
rules: [
|
||||||
|
rulesParity,
|
||||||
|
rulesEs6,
|
||||||
|
{
|
||||||
|
test: /\.js$/,
|
||||||
|
exclude: /node_modules/,
|
||||||
|
use: [ 'babel-loader' ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
test: /\.json$/,
|
||||||
|
use: [ 'json-loader' ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
test: /\.html$/,
|
||||||
|
use: [ {
|
||||||
|
loader: 'file-loader',
|
||||||
|
options: {
|
||||||
|
name: '[name].[ext]'
|
||||||
|
}
|
||||||
|
} ]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
plugins: Shared.getPlugins()
|
||||||
|
};
|
||||||
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user