技術をかじる猫

適当に気になった技術や言語、思ったこと考えた事など。

WSL に Salesforce 開発環境を作る

「汚さず」というのはWindowsのPATHとか常駐とか増やしたくないのです。
で、どういう事かというと WSL2 に Ubuntu 突っ込んで、そこに sfdx をセットアップするという方向。

なぜセットアップかって?メインマシンに SFDX 入れてなかったからさ!

WSL2 インスコ

まずは、Windows subsystem for linux をインストールしよう。

docs.microsoft.com

やるならWSL2からだね。
当たり前だけど窓 10 限定。

  1. Powershell を管理者で起動して
    f:id:white-azalea:20210407201754p:plain
  2. Powershell脳死dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart と突っ込む。
    f:id:white-azalea:20210407201912p:plain
  3. 次のコマンドで dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart を叩く。
    f:id:white-azalea:20210407202148p:plain
  4. カーネルパッチを当てよう
    Windows Subsystem for Linux (WSL) を Windows 10 にインストールする | Microsoft Docs
  5. 最後にPowerShellwsl --set-default-version 2 を叩けばおk

因みに、最後のコマンド実行時に BIOS の仮想化が Off になってる場合は指摘されます。
BIOS の設定はマシンによるので、環境ごとにやって下さいな。

尚、ASUSIntel マザボの場合は、「詳細」「CPU」の中に 「Intel VT」があるのでこいつを有効にしよう。

Ubuntu のインストール…っても Windows ストアで「Ubuntu」って突っ込めば手に入ります。

f:id:white-azalea:20210407203444p:plain

初回起動時にアカウントとパスワードを登録する。
因みに、初回は以下をお忘れなく

$ sudo apt update
$ sudo apt upgrade -y

nodejs と sfdx インストール

なぜ nodejs からだって?sfdx単体でなんて入れたくないからだ

  1. sudo apt install nodejs npm -y でとりあえず二つをインストール。
  2. sudo npm install n -gn というコマンドをインストールする。こいつはパッケージ管理ツールみたいなもんだ。
  3. sudo n stable 安定版 nodejs いれませう
$ node --version
v14.16.1
  1. で、インストール後に apt で入れた node は消しとく。 sudo apt purge -y nodejs npm
  2. npm コマンドをアップデートしよう npm update npm
  3. sfdx をインストールして完了。 sudo npm install sfdx-cli --global

Java インストール

SFDX の Apex language server には Java を使うので、これもインストールしよう。
Ubuntu でインストールするので、ぺっと

sudo apt install openjdk-11-jdk

因みに JVM の起動時利用メモリは、実装メモリの 33% という扱いです。
メインマシンはメモリ 32G だから特に心配はいらないけど、16G マシンで仮想マシンJava だとさらに小さくなるので注意。

Vscode からの接続

VSCode から sfdx 接続するのに、まずは Remote - WSL プラグインをインストールする。
まぁ公式サイトでクリックすればOK

marketplace.visualstudio.com

Salesforce Extension pack はこちら。

marketplace.visualstudio.com

VSCode で両方インストールするとこんな感じで表示されるので、Ubuntu にインストールしなおせばOK

f:id:white-azalea:20210407212042p:plain

後は普通に書ける。

f:id:white-azalea:20210407214903p:plain