Node.jsでJenkinsジョブ実行時に発生するfsevents警告を解決する方法
Jenkins で npm install 実行時に発生する fsevents 警告の解決方法
Jenkins で Node.js アプリケーションをビルドする場合、npm install
コマンドを実行するときに fsevents
という警告が発生することがあります。これは、fsevents
パッケージが macOS 専用であり、他のオペレーティングシステムではサポートされていないことが原因です。
この警告自体はエラーではないため、無視しても問題ありません。しかし、気になる場合は、以下の方法で解決することができます。
解決方法
- npm install --no-optional コマンドを使用する
このコマンドは、fsevents
パッケージを含むオプションの依存関係をインストールしません。
npm install --no-optional
- fsevents パッケージを強制的にインストールする
npm install fsevents@latest -f --save-optional
このコマンドは、fsevents
パッケージを最新バージョンに更新し、package-lock.json
ファイルに保存します。
- node_modules フォルダを削除して再インストールする
rm -rf node_modules
npm install
コマンドを実行する
npm install
補足
- 上記の解決方法のいずれを選択しても、
fsevents
警告は表示されなくなります。 fsevents
パッケージは、macOS 以外のオペレーティングシステムでは不要です。- どうしても
fsevents
パッケージを使用する必要がある場合は、macOS で Jenkins ジョブを実行する必要があります。
したがって、サンプルコードを提供することはできません。
代わりに、以下の解決方法を再度ご紹介します。
npm install --no-optional
npm install fsevents@latest -f --save-optional
rm -rf node_modules
npm install
その他の解決方法
fsevents パッケージの代替パッケージを使用する
fsevents
パッケージには、いくつかの代替パッケージがあります。以下に、いくつかの例とその使用方法を示します。
- chokidar
npm install chokidar
chokidar.watch('path/to/watch', {
persistent: true
});
- node-watch
npm install node-watch
const watcher = nodeWatch({
path: 'path/to/watch',
callback: (event, path) => {
console.log(event, path);
}
});
npm config set ignore-optional true
このコマンドを実行すると、npm install
コマンドがオプションの依存関係をインストールしなくなります。
macOS で Jenkins ジョブを実行する
注意事項
- 上記の方法はすべて、自己責任で行ってください。
- 変更を行う前に、必ずバックアップを取ってください。
node.js jenkins npm-install