我不使用WebPack或其他,而是尝试使用本机浏览器 ES-Module system(ESM)。
在TypeScript中,对引用本地NPM安装的模块的源进行编码。
import * as React from "react";
import * as ReactDOM from "react-dom";
import { SubComponent } from './sub-component';
然后转译的JavaScript代码为:
import * as React from "react";
import * as ReactDOM from "react-dom";
import { SubComponent } from './sub-component';
到目前为止,这还不好,因为在执行JavaScript代码时引用的实际路径应为:
import * as React from "../esm/react.js";
import * as ReactDOM from "../esm/react-dom.js";
import { SubComponent } from "./sub-component.js";
(注意:在此代码和路径中,我有一个有效的react / react-dom ESM文件,因此完全需要转换后的输出作为此代码。)
我已经读过https://www.typescriptlang.org/docs/handbook/module-resolution.html ,但不知道确切写些什么来设置映射。
tsconfig.json
无效:
{
"compilerOptions": {
//.........
"baseUrl": ".",
"paths": {
"react": [
"../esm/react.js"
],
"react-dom": [
"../esm/react-dom.js"
],
"./sub-component": [
"./sub-component.js"
],
}
}
}
正确的方法是什么?谢谢。