类型脚本导入在编译为 java 脚本时缺少.js扩展名

我决定将我的js项目迁移到ts中,但是我面临着以下问题:ts文件中的所有导入都缺少编译的js文件中的.js扩展名。这反过来又会引发以下错误:在我的浏览器控制台上。这是代码Loading failed for the module with source “http://localhost:5500/build/test/first”.


/src/index.html


<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<title>Document</title>

</head>

<body>

</body>

<script src="/build/test/last.js" type="module"></script>

</html>

/src/test/first.ts


export class First {

    name: string;


    constructor(name: string) {

        this.name = name

    }

}

/src/test/last.ts


import {First} from "./first"

class Last {


    constructor() {

        let name = new First("this is my name").name;

        console.log(name)

    }

}


new Last();

/构建/测试/第一.js


export class First {

    constructor(name) {

        this.name = name;

    }

}

/构建/测试/最后.js


import { First } from "./first";

class Last {

    constructor() {

        let name = new First("this is my name").name;

        console.log(name);

    }

}

请注意,在最后.js,导入缺少.js扩展名,如果我手动添加缺少的扩展名,则所有内容都按预期工作。最后是我的ts配置


{

    "compilerOptions": {

        "target": "ESNext",

        "lib": ["DOM","ES2017", "DOM.Iterable", "ScriptHost"],

        "watch": true,

        "rootDir": "./src", 

        "outDir": "./build",

        "sourceMap": true,

        "removeComments": true,

        "noEmitOnError": true,

        "strict": true,

    }

}

我是否缺少一些未在导入上添加正确扩展名的内容?如果是这样,请告诉我我做错了什么。谢谢。


蝴蝶刀刀
浏览 94回答 1
1回答

慕尼黑8549860

我是否缺少一些未在导入上添加正确扩展名的内容?为什么类型脚本会随机更改您的导入?您告诉它导入一个名为 的模块,并正确地将其编译为名为 的模块的导入。./first./first如果要导入其他模块,则需要告诉 TypeScript 导入其他模块。因此,如果您不想导入名为 的模块,而是要导入名为 的模块,则需要告诉 TypeScript 导入一个名为 的模块,而不是一个名为 的模块:./first./first.js./first.js./firstimport&nbsp;{First}&nbsp;from&nbsp;"./first.js"
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript