javascript - Fel: fetchPools(): odefinierad i TypeScript
Jag har ett problem med ett projekt jag håller på med.
När jag försöker med ts-node-esm fick jag följande fel:
Error: fetchPools(): (0 , isomorphic_fetch_1.default) is not a function
Error Getting Token Price. Defaulting to 0.
TypeError: (0 , node_fetch_1.default) is not a function
at /Users/synn/Documents/BAL/balancer-sor/src/swapCost/subgraph.js:66:70
at step (/Users/synn/Documents/BAL/balancer-sor/src/swapCost/subgraph.js:33:23)
at Object.next (/Users/synn/Documents/BAL/balancer-sor/src/swapCost/subgraph.js:14:53)
at /Users/synn/Documents/BAL/balancer-sor/src/swapCost/subgraph.js:8:71
at new Promise (<anonymous>)
at __awaiter (/Users/synn/Documents/BAL/balancer-sor/src/swapCost/subgraph.js:4:12)
at fetchSubgraphLatestTokenPrice (/Users/synn/Documents/BAL/balancer-sor/src/swapCost/subgraph.js:60:12)
at /Users/synn/Documents/BAL/balancer-sor/src/swapCost/subgraph.js:46:46
at step (/Users/synn/Documents/BAL/balancer-sor/src/swapCost/subgraph.js:33:23)
at Object.next (/Users/synn/Documents/BAL/balancer-sor/src/swapCost/subgraph.js:14:53)
Efter att ha gjort några ändringar (kan inte komma ihåg eftersom jag gjorde många saker), hade jag följande:
/usr/local/lib/node_modules/ts-node/dist/index.js:851
return old(m, filename);
^
Error [ERR_REQUIRE_ESM]: require() of ES Module /Users/synn/Documents/BAL/balancer-sor/node_modules/node-fetch/src/index.js from /Users/synn/Documents/BAL/balancer-sor/src/swapCost/subgraph.js not supported.
Instead change the require of index.js in /Users/synn/Documents/BAL/balancer-sor/src/swapCost/subgraph.js to a dynamic import() which is available in all CommonJS modules.
at Object.require.extensions.<computed> [as .js] (/usr/local/lib/node_modules/ts-node/dist/index.js:851:20)
at Object.<anonymous> (/Users/synn/Documents/BAL/balancer-sor/src/swapCost/subgraph.js:40:20)
at Object.require.extensions.<computed> [as .js] (/usr/local/lib/node_modules/ts-node/dist/index.js:851:20)
at Object.<anonymous> (/Users/synn/Documents/BAL/balancer-sor/src/swapCost/index.js:45:18)
at Object.require.extensions.<computed> [as .js] (/usr/local/lib/node_modules/ts-node/dist/index.js:851:20)
at Object.<anonymous> (/Users/synn/Documents/BAL/balancer-sor/src/wrapper.ts:25:20)
at Module.m._compile (/usr/local/lib/node_modules/ts-node/dist/index.js:857:29)
at Object.require.extensions.<computed> [as .ts] (/usr/local/lib/node_modules/ts-node/dist/index.js:859:16)
at Object.<anonymous> (/Users/synn/Documents/BAL/balancer-sor/src/index.ts:18:17)
at Module.m._compile (/usr/local/lib/node_modules/ts-node/dist/index.js:857:29)
at Object.require.extensions.<computed> [as .ts] (/usr/local/lib/node_modules/ts-node/dist/index.js:859:16)
at Object.<anonymous> (/Users/synn/Documents/BAL/balancer-sor/test/testScripts/swapExample.ts:23:15)
at Module.m._compile (/usr/local/lib/node_modules/ts-node/dist/index.js:857:29)
at Object.require.extensions.<computed> [as .ts] (/usr/local/lib/node_modules/ts-node/dist/index.js:859:16)
at async Promise.all (index 0) {
code: 'ERR_REQUIRE_ESM'
Och nu har jag följande:
synn@macbook balancer-sor % ts-node ./test/testScripts/swapExample.ts
Error: fetchPools(): undefined
Jag vet att det finns ett problem med fetch men kan inte lista ut...
tsconfig.json
{
"compilerOptions": {
"module": "ESNext",
"target": "es6",
"declaration": true,
"lib": ["es2019", "es2018.promise"],
"outDir": "./dist/",
"baseUrl": "src",
"esModuleInterop": true,
"moduleResolution": "node",
"resolveJsonModule": true,
"experimentalDecorators": true,
// "strict": true,
"strictNullChecks": true,
"strictFunctionTypes": false
},
"ts-node": {
"compilerOptions": {
"module": "CommonJS"
package.json
{
"name": "@balancer-labs/sor",
"version": "2.0.0-beta.4",
"license": "GPL-3.0-only",
"main": "dist/index.js",
"module": "dist/index.esm.js",
"types": "dist/index.d.ts",
"scripts": {
"build": "rollup -c",
"prepack": "yarn build",
"test": "TS_NODE_PROJECT='tsconfig.testing.json' nyc mocha -r ts-node/register test/*.spec.ts",
"coverage": "nyc report --reporter=text-lcov | coveralls",
"lint": "eslint ./src ./test --ext .ts --max-warnings 0"
},
"husky": {
"hooks": {
"pre-commit": "pretty-quick --staged"
}
},
"publishConfig": {
"registry": "https://registry.npmjs.org/",
"access": "public"
},
"files": [
"dist"
Hur kan jag lösa detta?