我正在使用Express应用程序,并且正在使用babel来翻译我的代码,以便能够使用一些ES6 / 7/8好东西。
我正在运行的用于转译文件的命令是:npx babel server --out-dir lib --watch
。然后,要启动服务器,请运行nodemon lib/server.js
。
我当前遇到的问题是,所有错误均来自/lib
中已转译的文件,因此跟踪与源中的实际内容并不完全匹配,因此难以调试。
因此,假设/lib
的已编译文件的第10行抛出异常,该错误与源中错误的实际位置不匹配,因为跟踪是针对已编译文件的
有没有办法让我正确地映射它?
谢谢!
答案 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",
快乐编码:)