监视管道输出到 eslint

Watchify pipe output to eslint

有人知道我如何将 Watchify 的输出通过管道传输到 eslint - 并让它在 CLI 中报告 linting 问题,同时仍然构建输出的 JS 吗?

Watchify 指出您可以使用 -o.

管道到命令
watchify main.js -o 'uglifyjs -cm > static/bundle.min.js'

Eslint 表示您可以使用 --stdin 标志从标准输入中读取。

因此,有了这些知识,我正在使用以下命令:

watchify main.js -o 'eslint --stdin > static/bundle.js'

这实际上是将 eslint 警告输出到 static/bundle.js。 我仍然希望它在 linting 通过时向 CLI 报告并构建 JS。这可能吗?

我只是在寻找直接使用模块的 CLI 解决方案。我不打算使用 Gulp/Grunt 或等价物。

不幸的是,Watchify 要求您指定一个输出文件,这意味着您将无法 stream/pipe 来自 eslint 的 --stdin 标志到 watchify 输出。

为了使用 --stdin 标志,输入必须采用导致输出到 shell 的 stdout 的先前命令的形式。然后 eslint 将获取该数据并对其进行 lint,仅将 eslint 命令的输出发送到系统 stdout... 这就是当 eslint 响应任何问题或成功时所看到的。

由于 watchify 正在捆绑您的源文件,因此最好先进行 lint,然后然后 执行 watchify。或者,您可以同时进行这两项操作。以下是每个示例:

首先是eslint:

eslint /path/to/src && watchify watchify main.js -o 'uglifyjs -cm > static/bundle.min.js'

同时:

eslint /path/to/src & watchify watchify main.js -o 'uglifyjs -cm > static/bundle.min.js'