初めに
- せっかくVSCodeで作成したLWC、そのままCLIで未管理パッケージまで作成して他組織に配りたい、ってなった時にどうしたらいいのか全く不明だったので、一応できた手順をメモします
- とりあえずできた、というレベルのため、間違いなどありましたら適時コメントいただけると非常に嬉しいですし、理解が追いつけばその度更新いたします
- 手順系の情報が少ないので、参考になれば幸いですが、管理パッケージに関してはまだ挑戦しておらず、少し手順が変わる可能性があります😭
前提
- すでにsfdxプロジェクトを作成済みで、成果物がほぼ出来上がっている状態
やること
1. 組織にVSCodeから認証します
2. Dev Hubを認証組織で有効化します
3. 対象組織のDev Hub組織をDefaultに設定します
// デフォルトのDev Hub組織の設定のための組織ログイン
sf org login web --set-default-dev-hub --alias DevHub
// 一応環境を開いて確認
sf org open --target-org DevHub
// 再度コマンドから対象組織のDevHubがDefaultになっているか確認
sf org list
4. 非管理Packageを作成します
sf package create --name yourPackageName --package-type Unlocked --path force-app
- そうすると、
sfdx-project.json
が下記のようになる
{
"packageDirectories": [
{
"path": "force-app",
"package": "yourPackageName",
"versionName": "ver 0.1",
"versionNumber": "0.1.0.NEXT",
"default": true,
"versionDescription": ""
}
],
"name": "yourPackageName",
"namespace": "",
"sfdcLoginUrl": "https://login.salesforce.com",
"sourceApiVersion": "58.0",
"packageAliases": {
"yourPackageName": "0H..."
}
}
Error (1): The requested resource does not exist
と表示されてしまった場合は、下記の通り対象組織で、[ロック解除済みパッケージと第二世代管理パッケージを有効化]を有効化してください
- 設定 > Dev Hub
5. パッケージバージョンを作成
sf package version create --package yourPackageName --path force-app --installation-key-bypass --wait 10 -v DevHub -c -f config/project-scratch-def.json
- 今回は、パッケージインストールパスワードを不要としています
-
-c
をつけるだけで、Code Coverageのチェックをするオプションとなります- Coverageが75%に満たない場合、リリース版にPromoteできません
- 今回、カスタム表示ラベルのtranslationsのmetaファイルがあり、これは
-f config/project-scratch-def.json
をつけないとエラーになったため付けています
- また、この場合、
project-scratch-def.json
に下記設定を加える必要があります
project-scratch-def.json
"languageSettings": {
"enableTranslationWorkbench": true,
"enableEndUserLanguages": true
}
6. インストールURLを確認
sf package version list --verbose
- ちなみに、この段階ではBetaバージョンとなり、Developer EditionやSandboxにはインストールできるパッケージとなります
7. リリースバージョンにPromote
sf package version promote --package 04...
-
04..
はパッケージバージョンIdを指定してください - これで、本番組織にもインストールできる未管理パッケージの作成完了となります
参考
-
sf package
コマンド一覧はこちらから:
- Mediumの記事