node.js - NodeJS导入与文件夹同名的文件

标签 node.js typescript babeljs

我有以下文件结构:([] 是文件夹)

[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/

相关文章:

javascript - 如何实现需要持续运行的 Node 应用程序?

javascript - Angular Material 选项卡标题不需要的行为

javascript - React - 由于某种原因,Babel Polyfill 不会阻止 Set 或 Weakmap 上的异常,但会填充 Promise

node.js:回调顺序困惑

unit-testing - 我如何将 should 与 mocha 和 mongoose 一起使用?

typescript - 如何在 TypeScript 中处理 ISO 日期字符串?

javascript - 由于 babelrc 导致构建失败,presets[0] [1] 必须是一个对象, false 或未定义

javascript - 在 nuxt 中使用 babel-polyfill (而不是 polyfill.io)

node.js - Node : Knex postgres query doesn't trigger unless 'then' is appended

javascript - TypeScript:类型参数不可分配