とあるStartupに勤めるエンジニアの技術ブログ

Salesforce、テスト関係の技術ブログなどを書く予定

Salesforce移行ツールでLightningコンポーネントを扱う

開発者コンソールで開発するようにLightning Components Developer's Guideに書いてあります。
しかし、開発者コンソールで開発するとソースコードリポジトリ管理できなかったり他人と共有するのが難しくなってきます。
Lightningコンポーネントも他のリソースと同様にSalesforce移行ツールでデプロイ・取り出しができるようになっていますので、Salesforce移行ツールを利用することでリポジトリ管理できるようになります(もちろんSalesforce移行ツールを利用しなくてもMetadata APIを利用すれば同様のことができます)。

準備

Lightningコンポーネントソースコードなどを準備します。

ソースコードを準備する

src
 |--sampleCmp
    |--sampleCmp.cmp
    |--sampleCmp.css
    |--sampleCmpController.js
    |--sampleCmpHelper.js

package.xmlを準備する

src/package.xml

<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
    <types>
        <members>sampleCmp</members>
        <name>AuraDefinitionBundle</name>
    </types>
    <version>32.0</version>
</Package>

Salesforce移行ツールでデプロイする

Salesforce移行ツールを使ってソースコードをデプロします。

ビルドファイルを準備する

build.xml

<project name="LightningSample" default="deploy" basedir="." xmlns:sf="antlib:com.salesforce">
  <property file="build.properties"/>
  <property environment="env"/>

  <target name="deploy">
    <sf:deploy username="(ユーザID)" password="(パスワード)" serverurl="https://login.salesforce.com" deployRoot="src"/>
  </target>
</project>

ターミナルからSalesforce移行ツールを実行する

> ant deploy

Salesforce移行ツールソースコードを取り出す

Salesforce移行ツールソースコードを取り出します。

ビルドファイルを準備する

build.xml

<project name="LightningSample" default="deploy" basedir="." xmlns:sf="antlib:com.salesforce">
  <property file="build.properties"/>
  <property environment="env"/>

  <target name="retrieve">
    <mkdir dir="code"/>
    <sf:retrieve username="(ユーザID)" password="(パスワード)" serverurl="https://login.salesforce.com" retrieveTarget="code" unpackaged="src/package.xml"/>
  </target>
</project>

ターミナルからSalesforce移行ツールを実行する

> ant retrieve

注意点

開発者コンソールを利用しないとエラーチェックが緩くなり、下記のような問題があります。開発者コンソールで開発していると遭遇しないようなエラーに遭遇することもあるので注意が必要です。

  • Developers ConsoleだとSave時にエラーになるソースコードでもデプロイできてしまう
  • ApplicationとComponentのような排他的なファイルも同じディレクトリに置けてしまう(デプロイできるのは片方のみ)