最近Google Apps Script(GAS)でSpread Sheet操作してみたりしていますが、Web上のサンプルコードが増えてきたので、何か開発環境はないかと調べてみたら、claspで連携できるとのことで、試してみたらハマってしまったのでメモしておきます。
過去のインストール等でCドライブ内のいたるところにnode_moduleというフォルダができており、またバージョンも古かったので、コントロールパネルからNode.jsをアンインストールしたのち、エクスプローラーでnode_moduleを削除して現時点の最新版のNode.jsを入れました。claspインストール
PowerShellから下記コマンドを実行。
npm install -g @google/clasp
claspと実行してみたところ...
> clasp
clasp : 用語 'clasp' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから、再試行してください。
発生場所 行:1 文字:1
+ clasp
+ ~~~~~
+ CategoryInfo : ObjectNotFound: (clasp:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
との表示。
claspを動かすために
パスが通っていないのだろうなというのはわかりますが、どこへ通すべきなのか不明。調べ方が下記コマンド
> npm bin -g
C:\usr\local
npm ERR! bin (not in PATH env variable)
どうやらNode.jsをインストールした際にC:\usr\localというフォルダができて、claspをインストールとそこへ展開する模様。また、コマンド結果からパスが通っていないことも判明。
環境変数のPATHにC:\usr\localを追加。もう一度claspとコマンドを実行すると、
clasp : このシステムではスクリプトの実行が無効になっているため、ファイル C:\usr\local\clasp.ps1 を読み込むことができません。詳細については、「about_Execution_Policies」(https://go.microsoft.com/fwlink/?LinkID=13
5170) を参照してください。
発生場所 行:1 文字:1
+ clasp
+ ~~~~~
+ CategoryInfo : セキュリティ エラー: (: ) []、PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess
デフォルトではPowerShellコマンドは実行できないらしい。となると、そもそものやり方が正しいのか怪しくなってきますが、clasp導入に際してそういったことに言及している記事が特に見つからず。ひとまず、セキュリティ的な運用は見直す必要はありますが、下記のようにPowerShellのスクリプトの実行ポリシーを変更。
Set-ExecutionPolicy RemoteSigned
はい(Y)を選択。これで動くようになりました。
> clasp -v
2.4.1
コメント
コメントを投稿