******* Scripts ******* The library `infrastructure-scripts `_ provides the scripts command. Run it with one of the arguments specified below and the relative path to the file that exports the your app-component, e.g. ``src/index.tsx``. Scripts enable you to ``build``, ``start`` (offline), ``deploy``, and attach a ``domain`` to your **infrastructure-components**-based project. Build ===== The ``build``-script prepares your project for local start or deployment:: scripts build src/index.tsx If you prefer using the usual ``npm run build`` command for building, simply add the following script to your ``package.json`` file:: "scripts": { "build": "scripts build src/index.tsx" } The build process adds further scripts to your ``package.json``. These let you start your software stack offline, start hot development, and deploy it. Which scripts are created depends on your app-component and its ````- and ````-components. Look at the app-components for more details on the created scripts: * :doc:`apps/spa` * :doc:`apps/isomorphic` Run Offline =========== Run ``scripts {your_stackName} src/index.tsx`` or ``npm run {your_stackName}`` to start your ```` or your ```` within an ```` in hot-development-mode. Wait until the console says that your app is running and open localhost:3000 in your browser. Changes to your source code become effective immediately in this mode. Just edit your source code and reload your page in the browser. Note that an ```` does not run with a backend (e.g. middlewares) in this mode! If you want to stop the app, use "ctrl-c" (or whatever command your console-application uses to interrupt a running script). Start ===== The script ``npm run start-{your_environment_name}`` starts your ```` locally (offline). Open your the url localhost:3000 in a browser and you can see your application in action. Have a look at the console of your development environment for outputs made on server-side (e.g. middlewares) Note: Changes at your source code require running ``npm run build`` before they become effective in this mode! Deploy ====== Once you ran the ``build`` script, your ``package.json`` will contain a script for each environment your app contains:: npm run deploy-{your_environment_name} From here, the scripts create the whole infrastructure stack on your AWS account. You'll get back an URL that now serves your app. Note: This script may take some time to complete! Domain ====== Have a look at our tutorial on how to register and prepare a domain within AWS. If you specified an ````-component with a ready-to-use-domain and once you deployed your app, you can initialize the domain with the following command:: npm run domain-{your_environment_name} Note: You only need to run this command once. But it may take quite some time to complete!