We'll build the app we just created, and look at what executors are and how to customize them.
- Understand what a
target
andexecutor
are - Invoking executors
- Configure executors by passing them different options
- Understand how an executor can invoke another executor
-
Build the app
-
You should now have a
dist
folder - let's open it up!- This is your whole app's output! If we wanted we could push this now to a server and it would all work.
- Notice how we generated a
3rdpartylicenses.txt
file and how all files have hashes in suffix - Open one of the files, for example
main.{hash}.js
and look at it's contents. Notice how it's minified.
-
Open up
apps/store/project.json
and look at the object undertargets/build
- this is the target, and it has an executor option, that points to
@nx/webpack:webpack
- Remember how we copied some images into our
/assets
folder earlier? Look through the executor options and try to find how it knows to include them in the final build!
- this is the target, and it has an executor option, that points to
-
Send a flag to the executor so that it builds for development
🐳 Hint
--configuration=development
-
Open up the
dist
folder again - notice how the3rdpartylicenses.txt
file is gone, as per the "development" configuration inproject.json
. Also notice how filenames no longer have hashed suffixes. Open one of the files, for examplemain.{hash}.js
. Notice how its content is now fully readable and there are sourcemaps attached to each of the compiled files. -
The serve target (located a bit lower in
project.json
) also contains a executor, that uses the output from the build target
🎓 If you get stuck, check out the solution