Babel和Node-语法错误上无堆栈跟踪 [英] Babel and Node - No stack trace on syntax errors
本文介绍了Babel和Node-语法错误上无堆栈跟踪的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在将一个项目从使用GULP转换到使用nodemon,这样我就可以使用带有巴别塔的ES6。我遵循了一个非常简单的过程,here描述得很好。快速浏览我的包。json:
{
"main": "index.js",
"scripts": {
"start": "FORCE_COLOR=3 nodemon --exec babel-node index.js"
},
"dependencies": {
"deps": "1.1.1"
},
"devDependencies": {
"@babel/cli": "^7.16.0",
"@babel/core": "^7.16.5",
"@babel/node": "^7.16.5",
"@babel/polyfill": "^7.12.1",
"@babel/preset-env": "^7.16.5",
"nodemon": "^2.0.15"
},
"babel": {
"presets": [
[
"@babel/preset-env",
{
"targets": {
"node": "current"
}
}
]
]
}
}
当我运行npm start
时,nodemon运行应用程序,并在保存时重新运行,但它崩溃并出现语法错误:
[nodemon] starting `babel-node index.js`
[HPM] Proxy created: /auth -> http://localhost:8081/
/myproject/node_modules/@babel/core/lib/parser/index.js:93
throw err;
^
SyntaxError: Legacy octal literals are not allowed in strict mode. (38:46)
at Parser._raise (/myproject/node_modules/@babel/parser/src/parser/error.js:147:45)
at Parser.raiseWithData (/myproject/node_modules/@babel/parser/src/parser/error.js:142:17)
at Parser.raise (/myproject/node_modules/@babel/parser/src/parser/error.js:91:17)
at Parser.recordStrictModeErrors (/myproject/node_modules/@babel/parser/src/tokenizer/index.js:1444:12)
at Parser.readNumber (/myproject/node_modules/@babel/parser/src/tokenizer/index.js:1239:12)
at Parser.getTokenFromCode (/myproject/node_modules/@babel/parser/src/tokenizer/index.js:951:14)
at Parser.nextToken (/myproject/node_modules/@babel/parser/src/tokenizer/index.js:307:10)
at Parser.next (/myproject/node_modules/@babel/parser/src/tokenizer/index.js:169:10) {
loc: Position { line: 38, column: 46 },
pos: 933,
code: 'BABEL_PARSE_ERROR',
reasonCode: 'StrictOctalLiteral'
}
[nodemon] app crashed - waiting for file changes before starting...
我的代码中发生此错误的位置似乎没有堆栈跟踪。在仔细理解no octal错误的情况下,我设法追踪到了它,但是出现的其他错误看起来非常相似,没有堆栈跟踪到我自己的代码中发生错误的位置。我怎么能那样调试呢?是否可以将Babel配置为包含代码中的错误来源?
推荐答案
使用Node16.9运行babel-node
似乎可以修复此问题。
节点12至16.8:
SyntaxError: Legacy octal literals are not allowed in strict mode. (1:4)
at Parser._raise (/tmp/babel-test-3/node_modules/@babel/parser/lib/index.js:569:17)
使用节点16.9+:
SyntaxError: /tmp/babel-test-3/index2.js: Legacy octal literals are not allowed in strict mode. (1:4)
> 1 | a = 01;
| ^
2 |
at Parser._raise (/tmp/babel-test-3/node_modules/@babel/parser/lib/index.js:569:17)
不需要其他更改。
这篇关于Babel和Node-语法错误上无堆栈跟踪的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文