【问题标题】:Node.js - SyntaxError: Unexpected token * when import expressNode.js - SyntaxError: Unexpected token * when import express
【发布时间】:2019-10-23 17:30:13
【问题描述】:

节点: v10.16.3
npm: 6.12.0

在 node.js 中导入 express 时出现错误。 我用这个代码https://github.com/angular-university/rxjs-course,看server/server.ts

我用server.ts 运行

$ ts-node ./server/server.ts

相关代码为:

import * as express from 'express';

错误是:

import * as express from 'express';
       ^

SyntaxError: Unexpected token *
    at Module._compile (internal/modules/cjs/loader.js:723:23)
    at Module.m._compile (/usr/local/lib/node_modules/ts-node/src/index.ts:493:23)
    at Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    at Object.require.extensions.(anonymous function) [as .ts] (/usr/local/lib/node_modules/ts-node/src/index.ts:496:12)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
    at Object.<anonymous> (/usr/local/lib/node_modules/ts-node/src/bin.ts:158:12)
    at Module._compile (internal/modules/cjs/loader.js:778:30)

我已经尝试使用以下代码更改代码:

import express from 'express';

【问题讨论】:

  • const express = require('express') 应该可以工作
  • 是的,但是我应该修改所有的应用程序,现在我得到一个与import {Application} from "express"; 相关的错误,对于其他导入 express 的文件也是如此,我需要修复这种导入方式
  • 我明白了,您使用的是哪个节点版本?
  • 节点:v10.16.3 npm:6.12.0
  • 好的,我刚试了一下,如果在 tsconfig 中修改模块并将目标设置为:"module": "commonjs","target": "es2017",

标签: node.js typescript express rxjs ts-node


【解决方案1】:

我已经使用@ktad 的建议解决了:

我在server.tsconfig.json 中添加了"target": "es2017",

这里是我的完整 server.tsconfig.json

{
  "compilerOptions": {
    "module": "commonjs",
    "target": "es2017",
    "lib": ["es2017"]
  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-15
    • 2015-10-13
    • 2021-12-17
    • 1970-01-01
    • 2017-09-16
    • 1970-01-01
    • 2017-04-08
    • 2013-02-25
    相关资源
    最近更新 更多