我正在使用Babel 7 + Typescript运行一个新项目。我正在学习Typescript,将两者结合起来是很大的挑战。我设法做到了,但仍然有一个问题。
编译项目时,来自./src/
的所有.ts文件都将转换为./dist/
中的.js文件。所有的点文件都将被忽略,这是预期的。但是,在./src/
中没有.ts扩展名的所有文件也将被忽略。
以下是我尝试过的许多命令:
// package.json
"scripts": {
// build1 compiles only the .js files
"build1": "babel src --out-dir dist",
// build2 compiles only the .ts files
"build2": "babel src --out-dir dist --extensions \".ts\"",
//build 3 compiles only the .ts files
"build3": "babel src --out-dir dist --extensions \".ts, .js\"",
//build 4 compiles only the .js files
"build4": "babel src --out-dir dist --extensions \".js, .ts\""
},
这是我的babel配置文件
// babel.config.js
module.exports = {
presets: [
"@babel/env",
"@babel/typescript",
],
plugins: [
"transform-dynamic-import",
"@babel/proposal-class-properties",
"@babel/proposal-object-rest-spread"
],
};
有什么主意吗?
非常感谢!
更新:从--extension参数中删除空格是可行的,但现在有副作用,我以前没有观察到。运行命令"babel src --out-dir dist --extensions \".ts,.js,.json\""
时,我发现.json文件出现问题,该文件也转换为.js。
我希望babel将.ts转换为.js,编译.js文件,然后直接复制其他任何文件。
答案 0 :(得分:0)
我终于找到了解决方案。我必须在命令中添加--copy-files参数。
babel src --out-dir dist --extensions \“。ts,.js \” --copy-files
--extensions \".ts,.js\"
告诉babel编译所有.ts和.js文件。
--copy-files
告诉babel复制所有其他文件。