Babel 创建输出目录但不转换任何文件

Babel creates output directory but doesn't transpile any files

我正在尝试转译一个使用 ES6 语法和 TypeScript 的项目。我有这样的目录结构:

├── .babelrc
├── src
    ├── index.ts
    └── pitching
        ├── pitching.test.ts
        └── pitching.ts

我想编译 src 中的所有内容并输出到 dist/。我尝试了以下命令的多种变体(在 package.json 中的 "build" 脚本中指定):

babel ./src -d ./dist

但我总是得到以下输出:

$ babel ./src -d ./dist
Successfully compiled 0 files with Babel (13ms).
Done in 0.32s

结果是我的项目根目录中的空 dist/ 目录。我尝试编译为单个文件而不是目录,这确实创建了一个编译文件,但代码中引用的所有模块路径都被弄乱了,因为它们是相对于 src 目录的。我只提到这个是因为对我来说它表明我的 babel 设置是正确的,尽管也许我也错了。

我的问题是,为什么我的文件没有被转译,或者我该如何排除故障?该命令没有给我任何有用的输出,即使我将 {"debug": true} 添加到 .babelrc.

中的预设中也是如此

作为参考,这里是我使用的 babel 包和版本:

"devDependencies": {
    "@babel/cli": "^7.10.3",
    "@babel/core": "^7.10.3",
    "@babel/preset-env": "^7.10.3",
    "@babel/preset-typescript": "^7.10.1",
    "@types/jest": "^26.0.3",
    "jest": "^26.1.0"
}

这是我的 .babelrc

{
    "presets": ["@babel/preset-env", "@babel/preset-typescript"]
}

尝试添加正确的文件扩展名。这样做的原因是 babel/preset-typescript 需要一个额外的参数来按预期进行转换。请参阅文档 here

React 应用程序同时编译 tstsx 文件。

babel --extensions .ts,.tsx ./src -d ./dist

普通打字稿应用程序仅使用 ts 个文件。

babel --extensions .ts ./src -d ./dist

在我的例子中,我已经使用了 --extensions '.ts' 标志,但仍然得到“成功编译 0 个文件”。我不确定我们的设置之间还有什么不同,但对我来说解决它的是概述的解决方案 here。一旦我 删除 .ts 周围的环绕引号,它就开始工作了。