打字稿:意外的令牌导入

时间:2018-03-10 13:59:58

标签: node.js typescript

刚开始使用打字稿。不幸的是,当我尝试为生产进行构建时,它失败了。

首先我运行

tsc

这没有任何错误,但是当我尝试运行构建文件时,我得到导入错误

node build/index.js

我得到的错误如下:

[0] (function (exports, require, module, __filename, __dirname) { import {
[0]                                                               ^^^^^^
[0]
[0] SyntaxError: Unexpected token import
[0]     at createScript (vm.js:80:10)
[0]     at Object.runInThisContext (vm.js:139:10)

以下是我的tsconfig

{
    "include": [
        "src/**/*"
    ],
    "exclude": [
        "node_modules",
        "**/*.spec.ts"
    ],
   "compilerOptions": {
        "lib": [
            "es5",
            "es6",
        ],
        "pretty": true,
        "target": "es5",
        "module": "commonjs",
        "outDir": "./build",
        "moduleResolution": "node",
        "emitDecoratorMetadata": true,
        "experimentalDecorators": true,
        "allowSyntheticDefaultImports": true,
        "sourceMap": true
   }
}

我正在使用节点v8.9.3

2 个答案:

答案 0 :(得分:5)

使用NodeJ时,tsconfig.json应如下所示:

{
    "include": [
        "src/**/*"
    ],
    "exclude": [
        "node_modules",
        "**/*.spec.ts"
    ],
   "compilerOptions": {
        "lib": ["es6"],        // No need for "es5" if you have "es6"
        "types": ["node"],      // When you code for nodejs
        "target": "es6",       // NodeJs v8.9.3 supports most of the es6 features
        "pretty": true,
        "module": "commonjs",
        "outDir": "./build",
        "moduleResolution": "node",
        "emitDecoratorMetadata": true,
        "experimentalDecorators": true,
        "allowSyntheticDefaultImports": true,
        "sourceMap": true
   }
}

答案 1 :(得分:5)

如果使用TypeOrm,则ormconfig可能存在问题。您的配置文件可能包含src/entities/*.ts部分中的entity之类的路径。因此,这导致需要从*.ts文件夹而不是src文件夹中提取dist个文件。