53 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # Building Angular with Bazel
 | |
| 
 | |
| Note: this doc is for developing Angular, it is _not_ public
 | |
| documentation for building an Angular application with Bazel.
 | |
| 
 | |
| The Bazel build tool (http://bazel.build) provides fast, reliable
 | |
| incremental builds. We plan to migrate Angular's build scripts to
 | |
| Bazel.
 | |
| 
 | |
| ## Installation
 | |
| 
 | |
| Install Bazel from the distribution, see [install] instructions.
 | |
| On Mac, just `brew install bazel`.
 | |
| 
 | |
| Bazel will install a hermetic version of Node, npm, and Yarn when
 | |
| you run the first build.
 | |
| 
 | |
| [install]: https://bazel.build/versions/master/docs/install.html
 | |
| 
 | |
| ## Configuration
 | |
| 
 | |
| The `WORKSPACE` file indicates that our root directory is a
 | |
| Bazel project. It contains the version of the Bazel rules we
 | |
| use to execute build steps, from `build_bazel_rules_typescript`.
 | |
| The sources on [GitHub] are published from Google's internal
 | |
| repository (google3).
 | |
| 
 | |
| That repository defines dependencies on specific versions of
 | |
| all the tools. You can run the tools Bazel installed, for
 | |
| example rather than `npm install` (which depends on whatever
 | |
| version you have installed on your machine), you can
 | |
| `bazel run @build_bazel_rules_typescript_node//:bin/npm install`.
 | |
| 
 | |
| Bazel accepts a lot of options. We check in some options in the
 | |
| `.bazelrc` file. See the [bazelrc doc]. For example, if you don't
 | |
| want Bazel to create several symlinks in your project directory
 | |
| (`bazel-*`) you can add the line `build --symlink_prefix=/` to your
 | |
| `.bazelrc` file.
 | |
| 
 | |
| [GitHub]: https://github.com/bazelbuild/rules_typescript
 | |
| [bazelrc doc]: https://bazel.build/versions/master/docs/bazel-user-manual.html#bazelrc
 | |
| 
 | |
| ## Building Angular
 | |
| 
 | |
| - Build a package: `bazel build packages/core`
 | |
| - Build all packages: `bazel build packages/...`
 | |
| 
 | |
| You can use [ibazel] to get a "watch mode" that continuously
 | |
| keeps the outputs up-to-date as you save sources. Note this is
 | |
| new as of May 2017 and not very stable yet.
 | |
| 
 | |
| [ibazel]: https://github.com/bazelbuild/bazel-watcher
 |