我有以下文件结构:([] 是文件夹)
[MySQL]
ConnectionPool.ts
Connection.ts
MySQL.ts
在我的代码中,我使用 typescript 开发应用程序,该应用程序将构建为生产版本的 javascript。开发版本直接从未编译的 typescript 文件进行测试,使用具有以下配置的 babel:
{
"presets": [
["@babel/preset-env", {
"targets": {
"node": "current"
}
}],
"@babel/preset-typescript"
],
"plugins": [
"@babel/plugin-transform-runtime",
[
"module-resolver",
{
"alias": {
... list of some aliases
}
}
]
]
}
我的问题如下,我的大部分导入都是这样的:
import ConnectionPool from 'MySQL/ConnectionPool`
这对我有用,因为当我运行我的开发代码时,编译器正确识别了 .ts
的文件扩展名,并且它还正确识别了 .js 的构建版本文件扩展名
。
但是如果我想导入我的 MySQL.ts
文件,我不能这样做,因为我会收到以下错误:Error: Cannot find module './'
。如果我在我的 import 语句中指定文件扩展名,一切正常,但是,当我构建我的代码时,那里将不再有 .ts
文件,所以我会在那里出错。
奇怪的是,在我使用 webpack
的前端,我没有收到关于导入不带扩展名的文件的投诉,这些文件的名称与同一目录中的文件夹名称相同。对于这个问题,我有什么解决方案,而不是围绕重命名结构中的文件或文件夹?
最佳答案
将文件 MySQL.ts
重命名为 index.ts
并将其移动到文件夹 MySQL
关于node.js - NodeJS导入与文件夹同名的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64467107/