简体   繁体   English

Node.js应用程序如何编译或检查语法错误

[英]How to compile or check syntax error in Node.js application

I have created a node.js application.我创建了一个 node.js 应用程序。 I need to compile or do a check whether syntax error occurs before running the node.js service.I need to integrate this in jenkins. Kindly guide me to validate the node.js application运行node.js服务前需要编译或检查语法错误,需要在jenkins中集成,请指导验证node.js应用

Look into TypeScript.看看打字稿。 It is a language which allows you to get autocomplete with types and fails compilation if you have some syntax errors.它是一种语言,允许您自动完成类型并在您遇到一些语法错误时无法编译。 It is a superset of JavaScript and transpiles to JavaScript.它是 JavaScript 的超集,可转译为 JavaScript。

Node.js provides CLI option --check or -c for checking a given file for syntax errors without running it. Node.js 提供了 CLI 选项--check-c来检查给定文件的语法错误,而无需运行它。 When working with Linux or MacOS a command like the following one helps with checking all obvious javascript files in a folder for containing basically working code:使用 Linux 或 MacOS 时,如下所示的命令有助于检查文件夹中所有明显的 javascript 文件是否包含基本工作代码:

find -name "*.js" | xargs node -c

You can use 'node-syntax-error' module.您可以使用“节点语法错误”模块。 it helps you to detect and report syntax errors in source code strings.它可以帮助您检测和报告源代码字符串中的语法错误。

When you type node src.js you get a friendly error report about exactly where the syntax error is.当你输入node src.js 时,你会得到一个友好的错误报告,关于语法错误的确切位置。 This module lets you check for syntax errors and report them in a similarly friendly format that wrapping a try/catch around Function() or vm.runInNewContext() doesn't get you.这个模块让你检查语法错误并以类似友好的格式报告它们,在 Function()vm.runInNewContext()周围包裹一个try/catch不会得到你。

For example:例如:

var fs = require('fs');
var check = require('syntax-error');

var file = __dirname + '/src.js';
var src = fs.readFileSync(file);

var err = check(src, file);
if (err) {
    console.error('ERROR DETECTED' + Array(62).join('!'));
    console.error(err);
    console.error(Array(76).join('-'));
}

Use the following code for checking syntax error in node.js application -使用以下代码检查 node.js 应用程序中的语法错误 -

var check = require('syntax-error')

Check the source code string src for syntax errors.检查源代码字符串 src 是否存在语法错误。 Optionally you can specify a filename file that will show up in the output.您可以选择指定将显示在输出中的文件名文件。 If src has a syntax error, return an error object err that can be printed or stringified.如果 src 有语法错误,则返回一个可以打印或字符串化的错误对象 err。 If there are no syntax errors in src, return undefined.如果 src 中没有语法错误,则返回 undefined。

var err = check(src, file)

Using使用

node --check节点——检查

Only finds very grave errors and can be tricky to execute.只发现非常严重的错误并且执行起来可能很棘手。

I would suggest to use a linter like 'eslint'.我建议使用像“eslint”这样的 linter。 Because:因为:

  • It integrates easily with (npm lint or yarn lint)它很容易与(npm lint 或 yarn lint)集成
  • It catches almost all possible errors (way more than node -check)它捕获几乎所有可能的错误(比节点检查更多)

using eslint package https://www.npmjs.com/package/eslint It's a very common library to check the syntax of any JS/TS framework使用eslint package https://www.npmjs.com/package/eslint这是一个非常常用的库,用于检查任何 JS/TS 框架的语法

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM