繁体   English   中英

客户端的 Typescript 模块 - 最好的方法是什么?

[英]Typescript modules in client side - What is the best way?

我正在构建一个 web 应用程序。 我在客户端使用 typescript,在服务器端使用 golang。 我使用 typescript 3.9.2。

我想将.ts文件编译为.js ,并使用模块。 默认编译将其编译为CommonJS模块加载器。 然后在浏览器中它有一些exports.__...在第二行。 我搜索了一下,它基本上说它想要一个名为 exports 的变量,但我没有。 在这种情况下,我不喜欢在其他脚本标签中定义模拟导出的主要解决方案。

我将compilerOption更改为"module":"ES6"然后它编译并加载良好(在将脚本类型更改为模块之后),但浏览器找不到我要导入的模块。

代码是这样的:

使用.ts

import * as fun from 'funcs'
let bar =  fun.foo()

函数.ts

export function foo() :boolean{
return true;
}

使用.js

import * as fun from 'funcs'
var bar =  fun.foo()

函数.js

export function foo(){
return true;
}

现在浏览器找不到 use.js 需要的/funcs use.js 当我手动将use.js中的第一行更改为

import * as fun from 'funcs.js'

有用。

我该怎么做才能使一切自动化? 这里的最佳做法是什么?

ES 模块导入需要有.js扩展名,但 Typescript 的模块不需要,现在似乎没有自动添加它们的内置选项,但有人写了一个脚本来将扩展名添加到导入中,或者您可以手动将它们添加到导入中。

TypeScript Github 上有一些关于这个和相关问题的讨论。 他们正在考虑为浏览器的编译器添加一个模块解析选项。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM