まくろぐ

npm でインストール済みのモジュールを簡潔にリスト表示する

npm
更新:
作成:

npm list (ls) コマンドは NPM (Node Package Manager) でインストールしたパッケージの一覧を表示するコマンドですが、デフォルトでは依存モジュールをすべてツリー構造で表示するので、出力が大量になります。

インストールパッケージの一覧を表示
$ npm ls

myapp@1.0.0 D:\y\gitwork\myapp
+-- textlint@11.6.3
| +-- @textlint/ast-node-types@4.2.5
| +-- @textlint/ast-traverse@2.1.7
| | `-- @textlint/ast-node-types@4.2.5 deduped
| +-- @textlint/feature-flag@3.1.6
| | `-- map-like@2.0.0 deduped
| +-- @textlint/fixer-formatter@3.1.13
| | +-- @textlint/module-interop@1.0.2 deduped
| | +-- @textlint/types@1.3.1 deduped

... なが~い出力 ...

次のように --depth オプションを付けると、トップレベルのモジュール名だけを簡潔に表示することができます。

$ npm ls --depth=0

myapp@1.0.0 D:\y\gitwork\myapp
+-- textlint@11.6.3
+-- textlint-rule-preset-ja-technical-writing@3.1.3
`-- textlint-rule-web-plus-db@1.1.5

グローバルにインストールしたモジュールを表示するときも同様です。

$ npm ls -g --depth=0

関連記事

npm

npm run スクリプト実行時の ERR! 出力を抑制する (npm run --silent)

npm
更新:
作成:

npm run コマンドを使うと、package.json に定義されているスクリプトを実行することができるのですが、そこで実行したコマンドがエラー終了(exit 1 など)すると、npm run の実行自体もエラー扱いとなり、下記のようにエラー情報がたくさん出力されます。

$ npm run test

> myapp@1.0.0 test C:\myapp
> echo "Error: no test specified" && exit 1

"Error: no test specified"
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! myapp@1.0.0 test: `echo "Error: no test specified" && exit 1`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the myapp@1.0.0 test script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm WARN Local package.json exists, but node_modules missing, did you mean to install?

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\maku\AppData\Roaming\npm-cache\_logs\2020-05-21T09_29_36_426Z-debug.log

この npm ERR! という出力を抑制するには、次のように --silent オプションを使用します。

$ npm run --silent test
"Error: no test specified"

ちなみに、上記で使っている test スクリプトは、npm initpackage.json を新規作成したときにデフォルトで作成されるスクリプトです。

npm init で作られる package.json の抜粋
{
  // ...
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  // ...
}

関連記事

npm

VSCode の textlint プラグインで文章を校正する (vscode-textlint)

更新:
作成:

事前準備(textlint のインストール)

vscode-textlint は、Visual Studio Code でテキスト校正ツールの textlint を実行するためのプラグインです。 プレーンテキスト (.txt) や、Markdown ファイル (.md) の校正を VSCode 上で実行できるようになります。 textlint の本体の方は、Node.js の npm コマンドを使ってあらかじめインストールしておく必要があります。

こんな感じでインストールできます。

textlint 本体のインストール
$ cd myproject  # テキストファイルのあるディレクトリへ移動
$ npm init -y   # package.json がない場合は作成
$ npm install -D textlint  # textlint のインストール

もし、既存のプロジェクトで、package.json.textlintrc などがすでに存在しているのであれば、次のように実行すれば一発で textlint の実行環境が整います。

package.json に従って環境構築する場合
$ npm install

vscode-textlint プラグインをインストールする

vscode-textlint プラグインは、VS Code の Extensions タブから、textlint で検索してインストールすることができます。

/p/d3fs5gs/img-001.png

vscode-textlint プラグインによる校正を実行する

vscode-textlint プラグインは、VS Code で開いたディレクトリ内に設定ファイル .textlintrc が存在すると自動的に校正を実行します(ファイルではなく、ディレクトリを開かないと動作しません)。 たとえば次の設定ファイルでは、「ら抜き言葉」を検出するルール設定 を行なっています。

.textlintrc
{
  "rules": {
    "no-dropping-the-ra": true
  }
}

このとき、事前にこのルールを実行するためのモジュールがインストールされていないと、

Failed to load textlint's rule module: "no-dropping-the-ra" is not found.

といったエラーが Output ウィンドウに表示されます。 次のように、対応する textlint ルールをインストールすれば正しく実行されるようになります(次回からは npm install でまとめてインストールできるようなります)。

$ npm install -D textlint-rule-no-dropping-the-ra

textlint のルールによりエラーが検出されると、次のようにエディタ上に下線が引かれ、Problems ウィンドウにエラーの一覧が表示されます。

/p/d3fs5gs/img-002.png
図: 「ら抜き言葉」の検出
☝️ Quick Fix による自動修正 textlint --fix コマンドで自動修正可能なエラーであれば、エラーのある行にカーソルがある状態で Alt + Enter あるいは Cmd + . と入力すれば、自動的に正しい表現に修正してくれます。 自動修正に対応しているかどうかは、各ルールの NPM モジュールの説明ページを参照してください。 例えば、textlint-rule-ja-hiragana-fukushi は自動修正に対応しています(例: 且つかつ)。

あとは、同様にして いろいろな設定 を追加していくことができます。

文字を入力するたびに textlint を実行する

textlint の実行タイミングは、デフォルトではテキストファイルの保存時 (onSave) になっています。 文字を入力するたびに校正を実行したい場合は、設定メニュー (Settings) から、Extensionstextlint と辿り、設定を onType に変更します。

/p/d3fs5gs/img-003.png
図: textlint.run 設定

関連記事

メニュー

まくろぐ
サイトマップまくへのメッセージ