TransWikia.com

Textlint の実行結果が空になる

スタック・オーバーフロー Asked by hogemaru on December 28, 2021

Node.js で textlint を使用していますが、messages が空になってしまい原因がよく分かりません。
何が原因か分かる方が入ればご回答をお願いいたします。

あまり関係ないかと思っての補足ですが、Nuxt.js の middleware から上記を動かしています。

実行環境
Node.js: 12.8.0
textlint: 11.4.0

結果

"messages": [
    {
      "messages": [

      ],
      "filePath": "<text>"
    }
  ]
}

コード

import express from "express";
import { TextLintEngine } from "textlint";
import { TextlintMessage } from "@textlint/types";

const app = express();

app.get("/run-lint", async (req: any, res: any) => {
  const engine = new TextLintEngine({
    rulePaths: [
      "node_modules/textlint-rule-max-ten",
      "node_modules/textlint-rule-helper",
      "node_modules/textlint-rule-no-mix-dearu-desumasu",
      "node_modules/textlint-rule-preset-ja-technical-writing"
    ]
  });

  const messages = await engine.executeOnText("今日です。昨日だ。で、ほ、の、ぬ、ら").catch(e => {
    return [{ messages: e }];
  });

  res.json({
    messages: messages
  });
});

module.exports = {
  path: "/api",
  handler: app
};

2 Answers

おそらくですが.textlintrcが無いか中身が空なのではないでしょうか

Answered by user41974 on December 28, 2021

手元の環境では正常に動作しています。
このサイトをご覧になっていて、まだお困りのようでしたらtextlintのルールが正しく入っているかなど、設定を見直してみてください。

環境

Node.js: v10.15.3 (かなり古いですが…)
textlint: 11.4.0
OS: WIndows 10 Home 1903
ブラウザ: Chrome, Internet Explorer

コード

import express from "express";
import { TextLintEngine } from "textlint";
import { TextlintMessage } from "@textlint/types";

const app = express();

app.get("/run-lint", async (req: any, res: any) => {
  const engine = new TextLintEngine({
    rulePaths: [
      "node_modules/textlint-rule-max-ten",
      "node_modules/textlint-rule-helper",
      "node_modules/textlint-rule-no-mix-dearu-desumasu",
      "node_modules/textlint-rule-preset-ja-technical-writing"
    ]
  });

  const messages = await engine.executeOnText("今日です。昨日だ。で、ほ、の、ぬ、ら").catch(e => {
    return [{ messages: e }];
  });

  res.json({
    messages: messages
  });
});

module.exports = {
  path: "/api",
  handler: app
};

const PORT = process.env.PORT || 3000;
app.listen(PORT, function () {
    console.log('App is listening on port 3000!');
});

結果(JSON整形ツールで整形)

{
    "messages": [
        {
            "messages": [
                {
                    "type": "lint",
                    "ruleId": "ja-technical-writing/max-ten",
                    "message": "一つの文で"、"を3つ以上使用しています",
                    "index": 14,
                    "line": 1,
                    "column": 15,
                    "severity": 2
                },
                {
                    "type": "lint",
                    "ruleId": "ja-technical-writing/ja-no-mixed-period",
                    "message": "文末が"。"で終わっていません。",
                    "index": 17,
                    "line": 1,
                    "column": 18,
                    "severity": 2
                }
            ],
            "filePath": "<text>"
        }
    ]
}

Answered by payaneco on December 28, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP