缘由:部分合作伙伴(没错,就是ont)并不想下载我们的jssdk库,只想把它汇总为一个js文件,我想大概率对方应该接了很多家的jssdk,每家一个sdk文件,干净好管理。
解决:在1月底的时候解决过一次,但在3月初就全忘记了,没一点印象。
几经周折,终于找到解决办法了。
位置:打开opendex-ui工程
(我自己的opendex-ui工程在github/okex/opendex-ui下,已经存在,所以不需要安装)
把webpack.config.sdk.js和index.js两个文件分别按如下位置放置:
./build/webpack.config.sdk.js
./src/index.js
在package.json的scripts中添加
"web-sdk": "cross-env NODE_ENV=production webpack --config build/webpack.config.sdk.js",
得到压缩后的文件:
运行 $ npm run web-sdk
生成的目标文件在 ./dist/okexchain-sdk.js
附1:webpack.config.sdk.js
const path = require('path');
const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
const base = {
entry: path.resolve(__dirname, `../src/index.js`),
output: {
filename: 'okexchain-sdk.js',
library:'OKExChainClient',
libraryTarget:'global'
},
module: {
rules: [
{
test: /.js$/,
use: [
{
loader: 'babel-loader',
options: {
presets: ['@babel/preset-react'],
plugins: [
['@babel/plugin-proposal-decorators', { legacy: true }],
['@babel/plugin-proposal-class-properties', { loose: true }],
],
},
},
],
},
],
},
optimization: {
minimizer: [
new UglifyJsPlugin({
cache: true,
parallel: true,
uglifyOptions: {
compress: {
warnings: false,
drop_console: true,
collapse_vars: true,
reduce_vars: true,
},
},
}),
],
}
};
module.exports = base;
附2:index.js
const OKExChainClient = require('@okexchain/javascript-sdk');
module.exports = OKExChainClient;