Skip to content

Latest commit

 

History

History
103 lines (82 loc) · 2.61 KB

README.md

File metadata and controls

103 lines (82 loc) · 2.61 KB

AWX UI

Requirements

  • node.js 10.x LTS
  • npm >=6.x
  • bzip2, gcc-c++, git, make

Development

The API development server will need to be running. See CONTRIBUTING.md.

# Build ui for the devel environment - reachable at https://localhost:8043
make ui-devel

# Alternatively, start the ui development server. While running, the ui will be reachable
# at https://localhost:3000 and updated automatically when code changes.
make ui-docker

# When using docker machine, use this command to start the ui development server instead.
DOCKER_MACHINE_NAME=default make ui-docker-machine

Development with an external server

If you normally run awx on an external host/server (in this example, awx.local), you'll need to reconfigure the webpack proxy slightly for make ui-docker to work:

/awx/settings/development.py
+
+CSRF_TRUSTED_ORIGINS = ['awx.local:8043']

awx/ui/build/webpack.watch.js
-        host: '127.0.0.1',
+        host: '0.0.0.0',
+        disableHostCheck: true,

/awx/ui/package.json
@@ -7,7 +7,7 @@
   "config": {
     ...
+    "django_host": "awx.local"
   },

Testing

# run linters
make jshint

# run unit tests
make ui-test-ci

# run e2e tests - see awx/ui/test/e2e for more information
npm --prefix awx/ui run e2e

Note: Unit tests are run on your host machine and not in the development containers.

Adding dependencies

# add an exact development or build dependency
npm install --prefix awx/ui --save-dev --save-exact [email protected]

# add an exact production dependency
npm install --prefix awx/ui --save --save-exact [email protected]

# add the updated package.json and package-lock.json files to scm
git add awx/ui/package.json awx/ui/package-lock.json

Removing dependencies

# remove a development or build dependency
npm uninstall --prefix awx/ui --save-dev dev-package

# remove a production dependency
npm uninstall --prefix awx/ui --save prod-package

Building for Production

# built files are placed in awx/ui/static
make ui-release

Internationalization

Application strings marked for translation are extracted and used to generate .pot files using the following command:

# extract strings and generate .pot files
make pot

To include the translations in the development environment, we compile them prior to building the ui:

# remove any prior ui builds
make clean-ui

# compile the .pot files to javascript files usable by the application
make languages

# build the ui with translations included
make ui-devel

Note: Python 3.6 is required to compile the .pot files.