打字稿:esnext编译器选项破坏了从外部库导入的es6

马克西米利安·梅林格

将编译器选项的ethermoduletarget属性设置为esnext(id喜欢使用import("example")语句)时,es6 import语句对npm installed库停止工作(本地模块仍然有效:例如"./test.ts")。

所以这import * as asd from "testmodule";引发了cannot find module 'testmodule'但是,忽略这两个属性会使它起作用。为什么会这样?我应该使用什么标准来保留import("example")import * as asd from "testmodule";声明?


这是我完整的tsconfig.json:

{
  "compilerOptions": {
    "outDir": "./dist/",
    "module": "esnext",
    "target": "esnext",
    "allowJs": true,
    "sourceMap": true
  }
}

阿鲁安·哈达德(Aluan Haddad)

"module"从任何一边"commonjs",你需要一个specifiy"moduleResolution"价值"node"指定"commonjs"隐式设置。

另外,尽管有某些选项的名称,"target"并且"module"是独立且正交的。它们的含义截然不同,切勿混淆。

{
  "compilerOptions": {
    "outDir": "./dist/",
    "module": "esnext",
    "moduleResolution": "node",
    "target": "esnext", // this isn't relevant
    "allowJs": true,
    "sourceMap": true
  }
}

注意"commonjs"是目标格式。esnext导入语句像其他导入形式一样被转换为目标模块格式。如果指定--module esnext,则根本不会转译它们。关键是--module它指定了输出模块格式,而不是源模块格式。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

ES6作为angularjs或angular2的打字稿目标编译器选项

在ES6编译器中导入/导出

使用打字稿es6导入语法的linq javascript库

如何导入香草JS ES6模块打字稿?

闭包编译器+打字稿

Angular 中的打字稿编译器

如何使用打字稿编译器 api 更新或插入以导入?

TypeScript-TSC编译器破坏了我的代码

tsconfig.json 之外是否有打字稿编译器选项

将打字稿错误连接到其关联的编译器选项(tsconfig.json)

inlineSourceMap和inlineSources打字稿编译器选项之间的区别

使用RollUp捆绑打字稿-无法处理编译器选项

量角器/打字稿(es6):语法错误:无法在模块外部使用import语句

es6和es2015在Typescript编译器选项--libs中有什么区别

ES6 mixins的打字稿定义

如何模拟使用在节点模块中导出的导入(ES6打字稿)的外部注入库进行单元测试

打字稿es6导入模块“文件不是模块错误”

如何在打字稿中使用带有es6导入语法的节点模块

ES6 打字稿将所有导出的常量作为数组导入

React-beautiful-dnd打字稿编译器问题

从节点启动打字稿tsc编译器

Visual Studio 2017找不到打字稿编译器?

打字稿的最初编译器是用哪种语言编写的?

打字稿编译器:找不到名称“地图”

打字稿编译器中的对象速记语法

导入功能和ES6破坏

是否有充分的理由在打字稿项目中将编译器选项“声明”设置为true

即使将编译器选项用作angular 7中的目标es6和es2017,如何解决编译时错误?

Angular 2-导入外部传单打字稿库