打字稿tsc意外令牌{导入时

时间:2019-05-07 00:38:39

标签: node.js typescript ecmascript-6

我知道这是一个普遍的问题,ts config中的"module": "commonjs"似乎必须提供帮助,但事实并非如此。

节点v11.4.0, tsc 3.4.3

tsconfig.json

{
   "compilerOptions": {
      "lib": [
         "es2017",
         "dom"
      ],
      "target": "es6",
      "module": "commonjs",
      "moduleResolution": "node",
      "outDir": "./build",
      "emitDecoratorMetadata": true,
      "experimentalDecorators": true,
      "sourceMap": false,
      "rootDir": "src"
   },
   "exclude": [
      "node_modules",
      "**/*.spec.ts",
      "**/*.test.ts"]
}

导入.ts文件:

import {Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn} from "typeorm";

构建并运行:

  1. tsc
  2. node build/server.js

错误

(function (exports, require, module, __filename, __dirname) { import {Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn} from "typeorm";
                                                                     ^

SyntaxError: Unexpected token {
    at new Script (vm.js:83:7)
    at createScript (vm.js:267:10)
    at Object.runInThisContext (vm.js:319:10)
    at Module._compile (internal/modules/cjs/loader.js:686:28)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:734:10)
    at Module.load (internal/modules/cjs/loader.js:620:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:560:12)
    at Function.Module._load (internal/modules/cjs/loader.js:552:3)
    at Module.require (internal/modules/cjs/loader.js:659:17)
    at require (internal/modules/cjs/helpers.js:22:18)

请帮助:)

更新: 它仅出现在单个.ts文件中。其他文件中的导入工作正常。同时,它是唯一使用从typeorm模块导入的文件。

3 个答案:

答案 0 :(得分:1)

  

ts config中的“ module”:“ commonjs”似乎必须提供帮助,但没有帮助。

应该。它不起作用,因为未使用tsconfig。您应该正在运行tsc并提供项目文件:

tsc -p .

答案 1 :(得分:0)

首先检查tsconfig,一定是这些配置:

"target": "es6",
"module": "commonjs",
"moduleResolution": "node",

之后,检查您是否正在启动 JAVASCRIPT 文件而不是 TYPESCRIPT 文件

//Wrong:
node ....../file.ts

//Correct:
node ....../file.js

答案 2 :(得分:-2)

这是路径问题。 cd目录构建,节点server.js