如何将转译的babel文件中的错误映射回源?

时间:2018-12-23 00:17:30

标签: node.js babeljs babel

我正在使用Express应用程序,并且正在使用babel来翻译我的代码,以便能够使用一些ES6 / 7/8好东西。

我正在运行的用于转译文件的命令是:npx babel server --out-dir lib --watch。然后,要启动服务器,请运行nodemon lib/server.js

我当前遇到的问题是,所有错误均来自/lib中已转译的文件,因此跟踪与源中的实际内容并不完全匹配,因此难以调试。

因此,假设/lib的已编译文件的第10行抛出异常,该错误与源中错误的实际位置不匹配,因为跟踪是针对已编译文件的

有没有办法让我正确地映射它?

谢谢!

1 个答案:

答案 0 :(得分:0)

@Brian我建议您使用“ babel-polyfill”和“ babel-register”模块。 将这些模块添加到您的主条目文件中,例如,请参考以下代码。 通过这种方式,您无需分别移植代码,并且可以在相同的ES6 +原始代码中进行调试。

只需按照下面的代码片段所示简单地添加启动命令,它将运行您的node.js代码并在运行时即时转换所有ES6 +功能。

示例:     app.js

 // Added for regenerator runtime!!
  require('babel-polyfill');
// Transpile on the fly
  require('babel-register')({
   ignore: false,
   only: /\/src/,
  });
 require('dotenv/config');
 let server = require('./server');

 server.listen(process.env.APP_PORT, () => {
   console.info(`application started on port ${process.env.APP_PORT}`);
 });

package.json

  "scripts": {
    "start": "node src/app.js",

快乐编码:)