ハカセノオト

moon indicating dark mode
sun indicating light mode

gatsby-cli を macOS Catalina に入れようと思ったら手こずった話

October 26, 2020

最近、新しい macbook を使い始めたので、gatsby-cli を使えるようにしようと思ったら、手こずった話です。

筆者環境

  • MacBook Pro (16-inch, 2019)
  • macOS Catalina version 10.15.7
  • node v15.0.1

”○○○“は、開発元を検証できないため開けません

Catalinaからは一般的なアプリにデジタル署名と「公証(Notarization)」が必須となり、gatsby コマンドを実行しようとすると、

“sharp.node” は、開発元を検証できないため開けません

といったようなメッセージが表示される。

キャンセルして、

システム環境設定 —> セキュリティとプライバシー —> 一般 —> 常に許可

で1個ずつ許可できるが、gatsby-cli の場合、依存するプラグインが多すぎて、いちいち全部に許可することはやっていられない。

というわけで調べてみると、spctl で無効化できるらしい。

spctl コマンドに関しては以下。

$ man spctl
...
spctl manages the security assessment policy subsystem.
This subsystem maintains and evaluates rules that determine whether the system allows
the installation, execution, and other operations on files on the system.
...

・ダウンロードしたすべてのアプリケーションを許可する

$ sudo spctl --master-disable

これで、ダウンロードしたアプリに Apple の公証がなくても、確認なしで使えるようになった。

・「すべてのアプリケーションの実行を許可」を非表示にする(Catalinaの初期設定に戻す)

$ sudo spctl --master-enable

Catalina時代の「GateKeeper」と付き合う方法 - 新・OS X ハッキング!(257)

fatal error: ‘vips/vips8’ file not found

vips をインストールしないといけないみたい。

# libvipsのインストール(結構長い)
brew install vips
# node_modulesのクリア
rm -rf ./node_modules

gridsome v0.7.11 で 「fatal error: vips/vips8 file not found」が発生した際に対処した方法 - ざきの学習帳(旧 zackey推し )

Error: Cannot find module @babel/compat-data/data/corejs3-shipped-proposals

$ gatsby develop
success open and validate gatsby-configs - 0.050s
success load plugins - 8.239s
success onPreInit - 0.002s
success initialize cache - 0.015s
success copy gatsby files - 0.088s
success onPreBootstrap - 0.014s
success createSchemaCustomization - 0.005s
error "gatsby-plugin-mdx" threw an error while running the onCreateNode lifecycle:
Cannot find module '/path/to/node_modules/@babel/compat-data/data/corejs3-shipped-proposals'
Error: Cannot find module '/path/to/node_modules/@babel/compat-data/data/corejs3-shipped-proposals'

package.json で @babel/preset-env を 7.9.0 に固定

"@babel/preset-env": "=7.9.0"

これでうまく動いた。

CircleCIでCannot find module @babel/compat-data/corejs3-shipped-proposals - Qiita

Nodeのバージョンを12に上げたらCannot find module '@babel/compat-data/corejs3-shipped-proposals'というエラーが出て困った - Qiita

最後に

node のバージョン管理で使っている asdf の問題かと思って、nvm とかいろいろ試してみて、時間を溶かした。。orz


hnishi のブログ


技術系の記事など。
綺麗に書こうとすると続かない気がするので、割と雑に、備忘録的に書いていく方針。
内容に誤りがあった場合などのご連絡は、Twitter の DM などで頂けると幸いです。