javascript - Köra en enradig Typescript-fil utan att transpilera
Jag är nybörjare i TS och vill köra ett program på en rad direkt utan att transpilera via ts-node. Detta är mina specifikationer
Jag körde följande kommando
npm install -g typescript
npm install -g ts-node
Det här är min kod
Console.log("Hello World");
Jag får följande fel
PS G:\New folder> ts-node "g:\New folder\Session1.ts"
(node:5020) Warning: To load an ES module, set "type": "module" in the package.json or use the .mjs extension.
(Use `node --trace-warnings ...` to show where the warning was created)
g:\New folder\Session1.ts:2
export {};
^^^^^^
SyntaxError: Unexpected token 'export'
at internalCompileFunction (node:internal/vm:73:18)
at wrapSafe (node:internal/modules/cjs/loader:1178:20)
at Module._compile (node:internal/modules/cjs/loader:1220:27)
at Module.m._compile (C:\Users\user\AppData\Roaming\npm\node_modules\ts-node\src\index.ts:1618:23)
at Module._extensions..js (node:internal/modules/cjs/loader:1310:10)
at Object.require.extensions.<computed> [as .ts] (C:\Users\user\AppData\Roaming\npm\node_modules\ts-node\src\index.ts:1621:12)
at Module.load (node:internal/modules/cjs/loader:1119:32)
at Function.Module._load (node:internal/modules/cjs/loader:960:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
at phase4 (C:\Users\user\AppData\Roaming\npm\node_modules\ts-node\src\bin.ts:649:14)
Jag gör ingen import alls, jag tror att det borde fungera utan package.json-fil och även efter att ha lagt till package.json-fil kvarstår problemet fortfarande....Snälla hjälp mig med detta.
Tack
Svar #1
Fortplantning :
- Jag har reproducerat felet du upplever genom att initiera ett tomt paket:
pnpm init
- Då har jag lagt till
typescriptochts-node-paket.
pnpm add -D typescript ts-node
- Sedan startade skriptet genom att köra:
pnpm ts-node Session.ts
Lösning :
Byt bara ut ts-node mot node. Det kommer automatiskt att köra ts-node:
node Session.ts
Dessutom kan du lägga till detta i skripten i din package.json
{
"scripts": {
// Other Scripts
"dev": "node Session.ts"
}
}
Då kan du nu köra ditt skript via:
npm run dev
Det är också god praxis att använda camel case när du namnger dina skript i TypeScript/JavaScript som sessionIndex.ts. Du kan också kolla denna dokumentation om ditt TS blir större: https://aka.ms/tsconfig.