Aura is a UI framework for developing dynamic web apps for mobile and desktop devices, while providing a scalable long-lived lifecycle to support building apps engineered for growth. It supports partitioned multi-tier component development that bridges the client and server.
JavaScript Java PHP HTML CSS Shell
Switch branches/tags
Nothing to show
Clone or download
lukeis and GitHub Enterprise Multiple URI def requests with same definition (#3099)
* track defs that have been requested, to avoid requesting another from a secondary UI thread loop

@bug W-5184244@
Latest commit e209898 Jul 20, 2018
Permalink
Failed to load latest commit information.
.githooks Modify files for Aura name change ($A) Nov 6, 2012
aura-archetype Testing platform-compiler PR (#2848) Jun 1, 2018
aura-components Multiple URI def requests with same definition (#3099) Jul 20, 2018
aura-impl-expression make pom compatible with M2Eclipse 1.7 and Eclipse Oxygen (#2175) Jan 16, 2018
aura-impl Multiple URI def requests with same definition (#3099) Jul 20, 2018
aura-integration-test Densify: set required indicator as first child element (#3079) Jul 18, 2018
aura-interfaces Add AuraEnabled(cacheable=true) (#2908) Jun 7, 2018
aura-jetty add back jetty artifactId (#2111) Dec 19, 2017
aura-modules Upgrade LWC 0.24.1 (+fixes and CSS vars) (#3082) Jul 14, 2018
aura-resources sfci integration @W-5179096 (#3027) Jul 17, 2018
aura-spring Add AuraEnabled(cacheable=true) (#2908) Jun 7, 2018
aura-tools cleanup warnings (#2418) Mar 2, 2018
aura-util fix(compat): serve es5 resource for wire proddebug @bug W-5082969@ (#… Jun 19, 2018
aura Modify CSP.PolicyBuilder to produce unique items in frame-ancestors d… Jul 20, 2018
bin allow runnable from wherever (#2086) Dec 14, 2017
eclipse Initial validation framework. @bug W-2064193 Mar 23, 2014
licensing Add NOTICE file. Aug 12, 2015
.gitignore dquintal/best perf test integration (#2805) May 21, 2018
.zen.yaml sfci integration @W-5179096 (#3027) Jul 17, 2018
Gruntfile.js @W-4894393 ESLint rule to add null check wherever getComputedStyle is… May 9, 2018
LICENSE Modify files for Aura name change ($A) Nov 6, 2012
NOTICE Add NOTICE file. Aug 12, 2015
Procfile Modify files for Aura name change ($A) Nov 6, 2012
README.javascript Bogus push to force rebuild. Oct 17, 2015
README.md sfci integration @W-5179096 (#3027) Jul 17, 2018
WHOISRESPONSIBLE.txt Clean up some localizationService tests and unused code (#2333) Feb 12, 2018
aura_oss.pdf Update Aura OSS PDF (#2686) Apr 23, 2018
log4j.properties Fix some tests, clear out debug logging. Oct 16, 2015
package.json @W-4894393 ESLint rule to add null check wherever getComputedStyle is… May 9, 2018
pom.xml sfci integration @W-5179096 (#3027) Jul 17, 2018

README.md

What is Aura?

Aura is an open-source UI framework built by Salesforce for developing dynamic web apps for mobile and desktop devices. You can use open-source Aura to build apps independent of Salesforce.

Salesforce uses Aura to build apps, such as Lightning Experience and the Salesforce app.

Salesforce customers use the Lightning Component framework to build Lightning components. The Lightning Component framework is built on the open-source Aura framework. However, the open-source Aura framework has some features that aren't available to Salesforce customers.

If you're a Salesforce customer, you'll get more relevant information and learn more by starting with the Lightning Components Basics module in Trailhead.

If you're interested in how Aura is architected, all the code is in this repo. Feel free to poke around.

How Do I Develop with Aura?

Aura's architecture uses two key building blocks: components and events.

Components are the self-contained and reusable units of an app. They represent a reusable section of the UI, and can range in granularity from a single line of text to an entire app.

The framework includes a set of prebuilt components in the aura and ui namespaces. You can assemble and configure components to form new components in an app. Components are rendered to produce HTML DOM elements within the browser.

Components communicate with other components by firing and handling events. The robust event model enables you to develop loosely coupled components. Once you define the events that interact with your components, your team can work on the components in parallel to quickly build a powerful app.

Aura also supports a powerful expression language, embedded testing, performance, and security features.

How Do I Start?

The easiest way to build your first Aura app is from the command line, but you can easily use Aura with your favorite IDE too.

Note: If you’re a Salesforce customer, we recommend that you build Lightning components or application as opposed to building an open-source Aura app. You'll greatly benefit from a lot of foundational architecture that makes it easy to customize Lightning Experience, the Salesforce app, or other Lightning apps. If you're a Salesforce customer, you'll get more relevant information and learn more by starting with the Lightning Components Basics module in Trailhead.

Prerequisites

You need:

  • JDK 1.8
  • Apache Maven 3
  • Node 4.1.0+
  • NPM 2.2.0+
  • Chromedriver 2.37

Step 1: Install Node, NPM and Chromedriver

  1. Install Node and NPM (https://nodejs.org/en/download/)
  2. Download Google Chromedriver for your OS
  3. Unzip chromedriver into ~/bin/
  4. Ensure node, npm and chromedriver appear within your PATH variable (run echo $PATH within your command line window). If you cannot see node, npm or chromedriver within your PATH, be sure to add it to your PATH via the export function, eg: echo "export PATH=$PATH:$HOME/bin" >> $HOME/.bash_profile Or paste it directly into your $HOME/.bash_profile, $HOME/.profile, $HOME/.bashrc etc files

Step 2: Clone Aura git repo and build Archetype

  1. Open a command line window.

  2. Clone or download Aura maven project using the above github button.

  3. Navigate to root aura directory

  4. Build Aura

    mvn clean install

Step 2: Generate a Template from the Aura Archetype

  1. Open a command line window.

  2. Navigate to the directory where you want to create your project template and run:

    mvn archetype:generate -DarchetypeCatalog=local

  3. When prompted to choose an archetype, type the number that corresponds with Aura archetype.

    Choose archetype: 1: local -> org.auraframework:simple-aura-archetype (archetype for Aura-based "hello, world")

4 Enter these values:


    Define value for property 'groupId': org.myGroup
    Define value for property 'artifactId': helloWorld
    Define value for property 'version': 1.0-SNAPSHOT
    Define value for property 'package': org.myGroup
**Note**: The artifactId can only contain alphanumeric characters.
  1. When prompted to confirm properties configuration, enter Y. The following output confirms that your template has been generated successfully.

    [INFO] ----------------------------------------------------------------------------
    [INFO] Using following parameters for creating project from Archetype: aura-archetype:0.0.1-SNAPSHOT
    [INFO] ----------------------------------------------------------------------------
    [INFO] Parameter: groupId, Value: org.myGroup
    [INFO] Parameter: artifactId, Value: helloWorld
    [INFO] Parameter: version, Value: 1.0-SNAPSHOT
    [INFO] Parameter: package, Value: org.myGroup
    [INFO] Parameter: packageInPathFormat, Value: org.myGroup
    [INFO] Parameter: package, Value: org.myGroup
    [INFO] Parameter: version, Value: 1.0-SNAPSHOT
    [INFO] Parameter: groupId, Value: org.myGroup
    [INFO] Parameter: artifactId, Value: foo
    [INFO] project created from Archetype in dir: /home/
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 33.656s
    [INFO] Finished at: Tue Jul 16 14:39:07 PST 2013
    [INFO] Final Memory: 10M/180M
    [INFO] ------------------------------------------------------------------------

Step 3: Build and Run Your Project

  1. On the command line, navigate to the directory for your new app.

    cd helloWorld

  2. Build the app.

    mvn clean install

  3. Start the Jetty server on port 8080.

    mvn jetty:run

    To use another port, append: -Djetty.port=portNumber. For example, mvn jetty:run -Djetty.port=9877.

  4. Test your app in a browser by navigating to:

    http://localhost:8080/example/helloWorld.app
    You should see a simple greeting in your browser.

  5. To stop the Jetty server and free up the port when you are finished, press CTRL+C on the command line.

    Note: the helloWorld/pom.xml file has a <dependencies> section, which lists the <version> of each Aura artifact in your project. They define the version of Aura that your project is using and each artifact should use the same version.

Next Steps

Now that you've created your first app, you might be wondering where do I go from here? There is much more to learn about Aura. Here are a few ideas for next steps.

Read the Documentation

See the Aura Documentation site.

The Reference tab gives you details about out-of-the-box components and the JavaScript API. For components specific to Salesforce customers, refer to the Lightning Components Developer Guide.

Alternatively, you can start up your Jetty server and navigate to http://localhost:8080/auradocs/docs.app to access the documentation on your localhost.

Note: If you're a Salesforce customer:

Getting Help

If you're a Salesforce customer, ask a question on StackExchange, which has a great community of Lightning component developers.

If you find an issue with open-source Aura, use the Issues tab in this repo to let us know.