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

ele*_*han 6 javascript node.js transpiler babeljs

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

??? .babelrc
??? src
    ??? index.ts
    ??? pitching
        ??? pitching.test.ts
        ??? pitching.ts
Run Code Online (Sandbox Code Playgroud)

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

babel ./src -d ./dist
Run Code Online (Sandbox Code Playgroud)

但我总是得到以下输出:

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

结果是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"
}
Run Code Online (Sandbox Code Playgroud)

这是我的 .babelrc

{
    "presets": ["@babel/preset-env", "@babel/preset-typescript"]
}
Run Code Online (Sandbox Code Playgroud)

Dev*_*ave 11

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


Jos*_*Cho 6

尝试添加ts到扩展:

babel --extensions '.ts' ./src -d ./dist
Run Code Online (Sandbox Code Playgroud)

babel/preset-typescript需要额外的参数才能按预期进行转换。请参阅此处的文档。