Estoy usando un archivo js incluido a través de webpack.
Estoy en una situación un poco inusual en este momento.
Tengo que ejecutar js en Java, usar GraalVm.
Para explicarlo brevemente, tengo que llamar desde Java a través del nombre de función de js.
Value test = context.getBindings("js").getMember("testFunction");Sin embargo, cuando se empaqueta con un paquete web, no se llama porque esta función no es global.
aplicación.js
const {decodeAddress, encodeAddress} = require('@polkadot/keyring'); const {hexToU8a, isHex} = require('@polkadot/util'); function testFunction(address) { //I want this function. try { encodeAddress( isHex(address) ? hexToU8a(address) : decodeAddress(address) ); console.log("address : " + address); return true; } catch (error) { console.log("wrong address :" + address +error); return false; } }webpack.config.js
const path = require("path"); module.exports = { entry: path.resolve(__dirname, 'app.js'), output: { path: path.resolve(__dirname, 'dist'), filename: 'bundle.js', library: 'EntryPoint', }, optimization: { minimize:false }, resolve: { alias: { '@polkadot/wasm-crypto-wasm/packageInfo': require.resolve('@polkadot/wasm-crypto-wasm/packageInfo'), '@polkadot/wasm-crypto-wasm': require.resolve('@polkadot/wasm-crypto-wasm/empty'), '@polkadot/wasm-crypto-asmjs/packageInfo': require.resolve('@polkadot/wasm-crypto-asmjs/packageInfo'), '@polkadot/wasm-crypto-asmjs': require.resolve('@polkadot/wasm-crypto-asmjs/data') } } }último de bundle.js
(() => { //I think, I have to remove this arrow function. is it right? const {decodeAddress, encodeAddress} = __webpack_require__(7491); const {hexToU8a, isHex} = __webpack_require__(9215); function testFunction(address) { console.log(address); try { encodeAddress( isHex(address) ? hexToU8a(address) : decodeAddress(address) ); console.log("address : " + address); return true; } catch (error) { console.log("wrong address :" + address +error); return false; } } })();por favor, ayúdame :)
No estoy usando HTML. quiero solo bundle.js (¡función accesible!)