node.js - „typescript token neașteptat import” pe GDAX-tt - am încercat să urmez alte soluții pentru alte programe fără succes


Evident, dacă cauți "typescript unexpected token import" vei obține o mulțime de rezultate. Toate se referă la o problemă specifică, nu despre cum să abordezi problema în general. Așadar, am probleme să învăț din alte răspunsuri pentru a-mi rezolva problema.

Orice ajutor ar fi apreciat.

Eu folosesc:

Mac OS X

npm v5.5.1

fire v1.3.2

ts-node v4.1.0

nod v9.2.1

typescript v2.6.2

Urmăresc acest lucru: https://coinbase.github.io/gdax-tt/gtt_installation.html

Am instalat yarn.

Am actualizat npm.

Am folosit yarn pentru a adăuga gdax-tt.

Am folosit npm pentru a instala typescript.

Folosesc tsconfig.json recomandat. Este listat astfel pe pagina de instalare:

{
"compilerOptions": {
  "module": "commonjs",
  "target": "es6",
  "lib": ["es6", "es2016", "ES2016.Array.Include", "dom", "ES2017.object"],
  "noImplicitAny": true,
  "noImplicitReturns": true,
  "noImplicitThis": true,
  "noUnusedLocals": true,
  "strictNullChecks": false,
  "experimentalDecorators": true,
  "outDir": "build",
  "sourceMap": true,
  "allowJs": true
 },
  "exclude": [
  "node_modules"
 ]
}

Dar este pe GitHub ca:

{
"compilerOptions": {
 "module": "commonjs",
 "target": "es6",
 "lib": ["es6", "es2016", "ES2016.Array.Include", "dom", "ES2017.object"],
 "noImplicitAny": true,
 "noImplicitReturns": true,
 "noImplicitThis": true,
 "noUnusedLocals": true,
 "strictNullChecks": false,
 "experimentalDecorators": true,
 "outDir": "build",
 "sourceMap": true,
 "declaration": true,
 "skipLibCheck": true
},
"include": [
  "types/*.d.ts",
  "src/**/*.ts",
  "test/**/*.ts"
 ],
 "exclude": [
  "node_modules"
 ]
}

Am încercat ambele, dar fiindcă sunt nou în TS, nu sunt sigur că le-am folosit corect. Cum aș putea verifica?

Pot să pornesc următoarele:

ts-node ./build/src/consoles/gdaxConsole.js --product BTC-USD -t

Dar când alerg

ts-node ./tutorials/t001_feeds.ts 

Înțeleg asta:

import * as GTT from 'gdax-trading-toolkit';
^^^^^^

SyntaxError: Unexpected token import
    at createScript (vm.js:80:10)
    at Object.runInThisContext (vm.js:152:10)
    at Module._compile (module.js:605:28)
    at Module._extensions..js (module.js:652:10)
    at Object.require.extensions.(anonymous function) [as .ts] (/usr/local/lib/node_modules/ts-node/src/index.ts:414:14)
    at Module.load (module.js:560:32)
    at tryModuleLoad (module.js:503:12)
    at Function.Module._load (module.js:495:3)
    at Function.Module.runMain (module.js:682:10)
    at Object.<anonymous> (/usr/local/lib/node_modules/ts-node/src/_bin.ts:177:12)

Văd multe soluții pe acest site și pe altele pentru „tokenul neașteptat import”, dar toate par să fie sfaturi destul de specifice pe care nu le pot transforma într-o soluție pentru mine.

Poate cineva să îmi indice o resursă pentru a înțelege/dezlega această eroare sau să mă ajute să rezolv acest caz specific?

Răspuns #1

Sper că deja ți-ai rezolvat problema. În cazul în care nu, am reușit să fac acest lucru să ruleze pe Mac-ul meu. Al meu are versiunea de pe GitHub (cea cu „include”) în directorul gdax-tt. Deci nu cred că acesta este problema. Un lucru pe care îl observ este că js (JavaScript) rulează bine, dar ts pare să nu funcționeze. Ai rulat altceva cu ts-node? Ai încercat „which ts-node” pentru a te asigura că indică corect?

Mi-aș fi dorit să am mai mult pentru tine, dar nu primesc nimic de replicat.

Răspunsul #2

Problema pare să fie că dacă codul gdax-tt se află într-un director node_modules atunci nu este compilat, deci trebuie să treceți flag-ul --no-ignore la ts-node.

Am găsit indiciul aici, care m-a condus la argumentele liniei de comandă ale ts-node, care spun:

--ignore Specificați un șir de expresii regulate pentru ca ts-node să le ignore la compilarea ca TypeScript (implicit /node_modules/, --no-ignore/false pentru a dezactiva)