🤗

pnpmからPrettierのprettier-plugin-md-nocjspを使う方法

2022/09/22に公開

https://github.com/tats-u/prettier-plugin-md-nocjsp

pnpmがPrettierのプラグインをうまく解決できず(未マージのPR)、prettier-plugin-md-nocjspの設定方法に記載されている通りに.prettierrc.ymlに追記してもエラーになってしまう。

# エラー内容
Couldn't resolve parser "markdown-nocjsp"
.prettierrc.yml
# こう書けばいいよ!と言われるがpnpmをパッケージマネージャーにしている場合は動かない
overrides:
  - files:
      - "*.md"
      - README
    options:
      parser: markdown-nocjsp
  - files:
      - "*.mdx"
    options:
      parser: mdx-nocjsp

そこで、Prettierの設定ファイルをJSにしたうえでrequireでプラグインをインポートすることでやっと動くようになる。

.prettierrc.js
module.exports = {
  plugins: [require("prettier-plugin-md-nocjsp")],
  overrides: [
    {
      files: ["*.md"],
      options: {
        parser: "markdown-nocjsp",
      },
    },
  ],
};

ちなみにJetBrainsのIDE上でPrettierを使ってフォーマットしている方も多いと思うが、上記設定後に一度Invalidate cacheしてIDEを再起動しないとうまく動かなかった。

参考

https://github.com/NiklasPor/prettier-plugin-go-template/issues/63
https://github.com/prettier/prettier/pull/11248

Discussion