Babel不会编译所有文件

时间:2018-10-31 01:06:51

标签: typescript babel

我正在使用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文件,然后直接复制其他任何文件。

1 个答案:

答案 0 :(得分:0)

我终于找到了解决方案。我必须在命令中添加--copy-files参数。

  

babel src --out-dir dist --extensions \“。ts,.js \” --copy-files

--extensions \".ts,.js\"告诉babel编译所有.ts和.js文件。

--copy-files告诉babel复制所有其他文件。