首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >"SyntaxError:不能使用模块外的导入语句“在ts节点中的错误,而模块是CommonJS

"SyntaxError:不能使用模块外的导入语句“在ts节点中的错误,而模块是CommonJS
EN

Stack Overflow用户
提问于 2022-04-12 02:22:40
回答 1查看 2.2K关注 0票数 0

tsconfig.json),:无法使用模块外的导入语句”错误的主要原因是非CommonJS模块(SyntaxError中的compilerOptions.module,但我与"module": "CommonJS"有相同的错误)。

最初,我的tsconfig.json是:

代码语言:javascript
复制
{
  "compilerOptions": {

    "target": "ES2020",
    "module": "CommonJS",
    "moduleResolution": "node",
    "allowSyntheticDefaultImports": true,
    "esModuleInterop": true,

    "strict": true,
    "noUnusedLocals": true,
    "noUnusedParameters": false,
    "experimentalDecorators": true,

    "baseUrl": "./01-Source",
    "paths": {
      "@EnterpriseBusinessRules/*": [ "./BusinessRules/Enterprise/*"],
      // Other aliases
    }
  }
}

但是使用此配置,ts-node将不理解别名,并且将是错误的。

代码语言:javascript
复制
Error: Cannot find module '@EnterpriseBusinessRules/XXX/NNN'

尽管ts-节点不低于别名,但它理解import。为了解决别名问题,我添加了

代码语言:javascript
复制
{
  "compilerOptions": { /* */ },
  "ts-node": {
    "require": [
      "tsconfig-paths/register"
    ]
  }
}

部分到*tsconfig.json,而现在的错误是

代码语言:javascript
复制
import {
^^^^^^

SyntaxError: Cannot use import statement outside a module

我知道,在ts-node组中,我们可以覆盖compilerOptions如下:

代码语言:javascript
复制
{
   "ts-node": {
    "compilerOptions": {
      "module": "CommonJS",
      "esModuleInterop": true
    },
    "require": [
      "tsconfig-paths/register"
    ]
  }
}

但是模块已经是CommonJS,而已经是true,所以我不能覆盖它(但即使是尝试,也不会改变)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-13 10:37:55

在这种情况下,原因不是安装ts-节点。我通过nodemon执行了.ts文件,当目标文件为.ts时,nodemon会删除ts-node的执行,但是必须安装ts-nodeE 211

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71836307

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档