缘由:部分合作伙伴(没错,就是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;