@rnx-kit/cli 0.12.7 → 0.14.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/CHANGELOG.md +117 -0
  2. package/README.md +90 -65
  3. package/coverage/clover.xml +92 -104
  4. package/coverage/coverage-final.json +7 -6
  5. package/coverage/lcov-report/index.html +29 -29
  6. package/coverage/lcov-report/src/bundle/index.html +29 -29
  7. package/coverage/lcov-report/src/bundle/kit-config.ts.html +63 -117
  8. package/coverage/lcov-report/src/bundle/metro.ts.html +40 -163
  9. package/coverage/lcov-report/src/bundle/overrides.ts.html +28 -58
  10. package/coverage/lcov-report/src/bundler-plugin-defaults.ts.html +115 -0
  11. package/coverage/lcov-report/src/copy-assets.ts.html +1 -1
  12. package/coverage/lcov-report/src/index.html +26 -11
  13. package/coverage/lcov-report/src/metro-config.ts.html +49 -31
  14. package/coverage/lcov-report/src/typescript/index.html +1 -1
  15. package/coverage/lcov-report/src/typescript/project-cache.ts.html +5 -5
  16. package/coverage/lcov.info +173 -193
  17. package/lib/bundle/kit-config.d.ts +9 -15
  18. package/lib/bundle/kit-config.d.ts.map +1 -1
  19. package/lib/bundle/kit-config.js +34 -43
  20. package/lib/bundle/kit-config.js.map +1 -1
  21. package/lib/bundle/metro.d.ts +7 -11
  22. package/lib/bundle/metro.d.ts.map +1 -1
  23. package/lib/bundle/metro.js +21 -59
  24. package/lib/bundle/metro.js.map +1 -1
  25. package/lib/bundle/overrides.d.ts +11 -9
  26. package/lib/bundle/overrides.d.ts.map +1 -1
  27. package/lib/bundle/overrides.js +10 -18
  28. package/lib/bundle/overrides.js.map +1 -1
  29. package/lib/bundle/types.d.ts +4 -17
  30. package/lib/bundle/types.d.ts.map +1 -1
  31. package/lib/bundle.d.ts +8 -7
  32. package/lib/bundle.d.ts.map +1 -1
  33. package/lib/bundle.js +8 -35
  34. package/lib/bundle.js.map +1 -1
  35. package/lib/bundler-plugin-defaults.d.ts +3 -0
  36. package/lib/bundler-plugin-defaults.d.ts.map +1 -0
  37. package/lib/bundler-plugin-defaults.js +13 -0
  38. package/lib/bundler-plugin-defaults.js.map +1 -0
  39. package/lib/clean.js +106 -117
  40. package/lib/clean.js.map +1 -1
  41. package/lib/copy-assets.js +194 -210
  42. package/lib/copy-assets.js.map +1 -1
  43. package/lib/dep-check.js +12 -7
  44. package/lib/dep-check.js.map +1 -1
  45. package/lib/index.d.ts +1 -1
  46. package/lib/index.d.ts.map +1 -1
  47. package/lib/index.js +2 -1
  48. package/lib/index.js.map +1 -1
  49. package/lib/metro-config.d.ts +3 -2
  50. package/lib/metro-config.d.ts.map +1 -1
  51. package/lib/metro-config.js +7 -5
  52. package/lib/metro-config.js.map +1 -1
  53. package/lib/parsers.d.ts +2 -0
  54. package/lib/parsers.d.ts.map +1 -1
  55. package/lib/parsers.js +16 -1
  56. package/lib/parsers.js.map +1 -1
  57. package/lib/serve/kit-config.d.ts +6 -5
  58. package/lib/serve/kit-config.d.ts.map +1 -1
  59. package/lib/serve/kit-config.js +21 -6
  60. package/lib/serve/kit-config.js.map +1 -1
  61. package/lib/start.d.ts +2 -2
  62. package/lib/start.d.ts.map +1 -1
  63. package/lib/start.js +146 -158
  64. package/lib/start.js.map +1 -1
  65. package/package.json +9 -6
  66. package/react-native.config.js +65 -59
  67. package/src/bundle/kit-config.ts +42 -60
  68. package/src/bundle/metro.ts +15 -56
  69. package/src/bundle/overrides.ts +24 -34
  70. package/src/bundle/types.ts +17 -23
  71. package/src/bundle.ts +18 -36
  72. package/src/bundler-plugin-defaults.ts +10 -0
  73. package/src/index.ts +1 -1
  74. package/src/metro-config.ts +12 -6
  75. package/src/parsers.ts +19 -0
  76. package/src/serve/kit-config.ts +23 -11
  77. package/src/start.ts +23 -29
  78. package/test/bundle/__mocks__/@rnx-kit/config.js +2 -3
  79. package/test/bundle/__mocks__/@rnx-kit/console.js +1 -0
  80. package/test/bundle/__mocks__/@rnx-kit/metro-service.js +1 -0
  81. package/test/bundle/kit-config.test.ts +102 -100
  82. package/test/bundle/metro.test.ts +58 -98
  83. package/test/bundle/overrides.test.ts +29 -25
  84. package/test/copy-assets/assembleAarBundle.test.ts +1 -0
  85. package/lib/types.d.ts +0 -5
  86. package/lib/types.d.ts.map +0 -1
  87. package/lib/types.js +0 -3
  88. package/lib/types.js.map +0 -1
  89. package/src/types.ts +0 -4
package/CHANGELOG.md CHANGED
@@ -1,5 +1,122 @@
1
1
  # Change Log - @rnx-kit/cli
2
2
 
3
+ ## 0.14.2
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [93dda3ab]
8
+ - @rnx-kit/metro-service@3.0.0
9
+
10
+ ## 0.14.1
11
+
12
+ ### Patch Changes
13
+
14
+ - 80333120: Fixed tree shaking not being enabled unless `--tree-shake` is specified
15
+
16
+ ## 0.14.0
17
+
18
+ ### Minor Changes
19
+
20
+ - e2535866: # Breaking Changes
21
+
22
+ ## Command-Line: align parameter names with @react-native-community/cli
23
+
24
+ Add, rename, and remove command-line parameters in @rnx-kit/cli to fully align
25
+ with the well-known names used in @react-native-community/cli. This change will
26
+ pairs with similar changes in @rnx-kit/config.
27
+
28
+ In doing this, we'll be making it easier for developers to migrate to using our
29
+ config/cli combination, and our cli will become a "drop in" replacement
30
+ @react-native-community/cli. The longer-term goal is to upstream our work into
31
+ the community CLI, but until it is proven and accepted, we will continue to
32
+ maintain our wrapper commands.
33
+
34
+ ### `rnx-bundle` parameteters
35
+
36
+ Add:
37
+
38
+ - --bundle-output
39
+ - --sourcemap-use-absolute-path
40
+ - --unstable-transform-profile
41
+
42
+ Remove:
43
+
44
+ - --bundle-prefix
45
+ - --dist-path
46
+
47
+ Rename:
48
+
49
+ - --entry-path -> --entry-file
50
+ - --assets-path -> --assets-dest
51
+
52
+ ### `rnx-start` parameters
53
+
54
+ Rename:
55
+
56
+ - --project-root -> --projectRoot
57
+ - --watch-folders -> --watchFolders
58
+ - --asset-plugins -> --assetPlugins
59
+ - --source-exts -> --sourceExts
60
+
61
+ ## Zero configuration required
62
+
63
+ The bundler and bundle-server no longer require rnx-kit configuration to run.
64
+ This makes it possible to "upgrade" to @rnx-kit/cli by only changing the command
65
+ name:
66
+
67
+ - `react-native bundle` -> `react-native rnx-bundle`
68
+ - `react-native start` -> `react-native rnx-start`
69
+
70
+ ## Default configuration
71
+
72
+ This release moves configuration defaults from @rnx-kit/config to the CLI. The
73
+ CLI expresses our opinionated view of how config should be interpreted.
74
+
75
+ The following defaults now apply when running `rnx-bundle` and `rnx-start`:
76
+
77
+ - --entry-file / entryFile: "index.js"
78
+ - --bundle-output / bundleOutput: "index.<`platform`>.bundle" (Windows,
79
+ Android), or "index.<`platform`>.jsbundle" (iOS, MacOS)
80
+ - detectCyclicDependencies: `true` (config only)
81
+ - detectDuplicateDependencies: `true` (config only)
82
+ - typescriptValidation: `true` (config only)
83
+ - --tree-shake / treeShake: `false`
84
+ - --sourcemap-use-absolute-path / sourcemapUseAbsolutePath: `false` (bundling
85
+ only)
86
+
87
+ **NOTE**: Defaults are only used when the corresponding fields are missing from
88
+ both configuration and the command-line.
89
+
90
+ In addition to these defaults, `rnx-start` will use `bundle` configuration when
91
+ `server` configuration is not present, ensuring that by default, you are serving
92
+ the same way you are bundling. If both both are missing, then the above baseline
93
+ defaults are used.
94
+
95
+ ## `rnx-bundle`: source-map changes
96
+
97
+ The bundling code used to force the creation of a source-map file when in dev
98
+ mode (--dev true). This is inconsistent with how @react-native-community/cli
99
+ works, so it has been removed.
100
+
101
+ Further, `rnx-bundle` now supports `--sourcemap-use-absolute-path` with a
102
+ default value of `false`. This aligns with the @react-native-community/cli
103
+ behavior, and is a breaking change because it causes `sourcemapOutput` to be
104
+ stripped of any path info, leaving only the name of the source-map file.
105
+
106
+ ## Drop support for deprecated `rnx-bundle` parameter --experimental-tree-shake
107
+
108
+ This parameters was marked deprecated in a previous release, and though it was
109
+ still supported, it emitted a warning when used.
110
+
111
+ All support has now been dropped. The replacement parameter is `--tree-shake`.
112
+
113
+ ### Patch Changes
114
+
115
+ - Updated dependencies [e2535866]
116
+ - Updated dependencies [e2535866]
117
+ - @rnx-kit/metro-service@2.0.0
118
+ - @rnx-kit/config@0.5.0
119
+
3
120
  ## 0.12.7
4
121
 
5
122
  ### Patch Changes
package/README.md CHANGED
@@ -7,24 +7,29 @@
7
7
 
8
8
  <!--remove-block end-->
9
9
 
10
- Command-line interface for working with `kit` packages in your repo.
10
+ Command-line interface for working with packages in your repo.
11
11
 
12
12
  <!--remove-block start-->
13
13
 
14
- - [Bundle a kit](#Bundle-a-Kit)
15
- - [Start a bundle server](#Start-a-Bundle-Server)
16
- - [Manage kit dependencies](#Manage-Kit-Dependencies)
17
- - [Generate a 3rd-party notice for a kit](#Generate-a-Third%2dParty-Notice-for-a-Kit)
18
- - [Clean a React Native Project](#Clean-a-React-Native-Project)
14
+ - [Bundle a package](#bundle-a-package)
15
+ - [Start a bundle server](#start-a-bundle-server)
16
+ - [Manage dependencies](#manage-dependencies)
17
+ - [Generate a 3rd-party notice for a package](#generate-a-third%2dparty-notice-for-a-package)
18
+ - [Clean a React Native project](#clean-a-react-native-project)
19
19
 
20
20
  <!--remove-block end-->
21
21
 
22
- ## Bundle a Kit
22
+ ## Bundle a Package
23
23
 
24
- Bundle an application using [Metro](https://facebook.github.io/metro). The
25
- bundling process is controlled by
24
+ Bundle a package using [Metro](https://facebook.github.io/metro). The bundling
25
+ process uses optional
26
26
  [configuration](https://github.com/microsoft/rnx-kit/tree/main/packages/config)
27
- and optional command-line overrides.
27
+ parameters and command-line overrides.
28
+
29
+ The command `react-native rnx-bundle` is meant to be a drop-in replacement for
30
+ `react-native bundle`. If `rnx-bundle` ever becomes widely accepted, we will
31
+ work on upstreaming it to `@react-native-community/cli`, along with supporting
32
+ libraries for package configuration and Metro plugins.
28
33
 
29
34
  ### Example Commands
30
35
 
@@ -33,33 +38,26 @@ yarn react-native rnx-bundle
33
38
  ```
34
39
 
35
40
  ```bash
36
- yarn react-native rnx-bundle --platform ios --dev false --minify true
41
+ yarn react-native rnx-bundle --entry-file src/index.ts --bundle-output main.jsbundle --platform ios --dev false --minify true
37
42
  ```
38
43
 
39
- ```bash
40
- yarn react-native rnx-bundle --bundle-prefix test-app --tree-shake true
41
- ```
42
-
43
- ### Example Configuration
44
+ ### Example Configuration (Optional)
44
45
 
45
46
  ```json
46
47
  {
47
48
  "rnx-kit": {
48
49
  "bundle": {
49
- "entryPath": "src/index.ts",
50
- "distPath": "dist",
51
- "assetsPath": "dist",
52
- "bundlePrefix": "main",
50
+ "entryFile": "entry.js",
51
+ "assetsDest": "dist",
53
52
  "detectCyclicDependencies": true,
54
53
  "detectDuplicateDependencies": {
55
54
  "ignoredModules": ["react-is"]
56
55
  },
57
56
  "typescriptValidation": true,
58
- "treeShake": true,
59
57
  "targets": ["ios", "android", "windows", "macos"],
60
58
  "platforms": {
61
59
  "android": {
62
- "assetsPath": "dist/res"
60
+ "assetsDest": "dist/res"
63
61
  },
64
62
  "macos": {
65
63
  "typescriptValidation": false
@@ -70,33 +68,54 @@ yarn react-native rnx-bundle --bundle-prefix test-app --tree-shake true
70
68
  }
71
69
  ```
72
70
 
71
+ ### Bundle Defaults
72
+
73
+ When certain parameters aren't specified in configuration or on the
74
+ command-line, they are explicitly set to default values.
75
+
76
+ | Parameter | Default Value |
77
+ | --------------------------- | --------------------------------------------------------------------------------------------- |
78
+ | entryFile | "index.js" |
79
+ | bundleOutput | "index.<`platform`>.bundle" (Windows, Android), or "index.<`platform`>.jsbundle" (iOS, MacOS) |
80
+ | detectCyclicDependencies | `true` |
81
+ | detectDuplicateDependencies | `true` |
82
+ | typescriptValidation | `true` |
83
+ | treeShake | `false` |
84
+
85
+ Other parameters have implicit defaults, buried deep in Metro or its
86
+ dependencies.
87
+
73
88
  ### Command-Line Overrides
74
89
 
75
90
  | Override | Description |
76
91
  | ---------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
77
- | --id [id] | Target bundle definition. This is only needed when the kit configuration has multiple bundle definitions. |
78
- | --platform [`ios` &#124; `android` &#124; `windows` &#124; `win32` &#124; `macos`] | Target platform. When not given, all platforms in the kit configuration are bundled. |
79
- | --entry-path [file] | Path to the root JavaScript file, either absolute or relative to the kit package. |
80
- | --dist-path [path] | Path where the bundle is written, either absolute or relative to the kit package. |
81
- | --assets-path [path] | Path where bundle assets like images are written, either absolute or relative to the kit package. |
82
- | --bundle-prefix [prefix] | Bundle file prefix. This is followed by the platform and bundle file extension. |
83
- | --bundle-encoding [`utf8` &#124; `utf16le` &#124; `ascii`] | [Character encoding](https://nodejs.org/api/buffer.html#buffer_buffers_and_character_encodings) to use when writing the bundle file. |
92
+ | --id [id] | Target bundle definition. This is only needed when the rnx-kit configuration has multiple bundle definitions. |
93
+ | --entry-file [file] | Path to the root JavaScript or TypeScript file, either absolute or relative to the package. |
94
+ | --platform [`ios` &#124; `android` &#124; `windows` &#124; `win32` &#124; `macos`] | Target platform. When not given, all platforms in the rnx-kit configuration are bundled. |
84
95
  | --dev [boolean] | If false, warnings are disabled and the bundle is minified (default: true). |
85
96
  | --minify [boolean] | Controls whether or not the bundle is minified. Disabling minification is useful for test builds. |
86
- | --tree-shake [boolean] | Controls whether or not the bundle is tree shaken. Enabling it turns on dead-code elimination, potentially making the bundle smaller. |
97
+ | --bundle-output [path] | Path to the output bundle file, either absolute or relative to the package. |
98
+ | --bundle-encoding [`utf8` &#124; `utf16le` &#124; `ascii`] | [Character encoding](https://nodejs.org/api/buffer.html#buffer_buffers_and_character_encodings) to use when writing the bundle file. |
87
99
  | --max-workers [number] | Specifies the maximum number of parallel worker threads to use for transforming files. This defaults to the number of cores available on your machine. |
88
- | --sourcemap-output [string] | Path where the bundle source map is written, either absolute or relative to the dist-path. |
100
+ | --sourcemap-output [string] | Path where the bundle source map is written, either absolute or relative to the package. |
89
101
  | --sourcemap-sources-root [string] | Path to use when relativizing file entries in the bundle source map. |
102
+ | --assets-dest [path] | Path where bundle assets like images are written, either absolute or relative to the package. If not given, assets are ignored. |
103
+ | --tree-shake [boolean] | Enable tree shaking to remove unused code and reduce the bundle size. |
90
104
  | --reset-cache | Reset the Metro cache. |
91
105
  | --config [string] | Path to the Metro configuration file. |
92
106
  | -h, --help | Show usage information. |
93
107
 
94
108
  ## Start a Bundle Server
95
109
 
96
- Start a bundle server for an application using
97
- [Metro](https://facebook.github.io/metro). The server is controlled by
110
+ Start a bundle server for a package using
111
+ [Metro](https://facebook.github.io/metro). The bundle server uses optional
98
112
  [configuration](https://github.com/microsoft/rnx-kit/tree/main/packages/config)
99
- and optional command-line overrides.
113
+ parameters and command-line overrides.
114
+
115
+ The command `react-native rnx-start` is meant to be a drop-in replacement for
116
+ `react-native start`. If `rnx-start` ever becomes widely accepted, we will work
117
+ on upstreaming it to `@react-native-community/cli`, along with supporting
118
+ libraries for package configuration and Metro plugins.
100
119
 
101
120
  ### Example Commands
102
121
 
@@ -127,28 +146,33 @@ yarn react-native rnx-start --host localhost --port 8812
127
146
  }
128
147
  ```
129
148
 
149
+ ### Server Defaults
150
+
151
+ If the server configuration is not defined, it is implicitly created at runtime
152
+ from the bundle configuration (or its [defaults](#bundle-defaults)).
153
+
130
154
  ### Command-Line Overrides
131
155
 
132
- | Override | Description |
133
- | ----------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
134
- | --host [string] | Host name or address to bind when listening for incoming server requests. When not given, requests from all addresses are accepted. |
135
- | --port [number] | Host port to use when listening for incoming server requests. |
136
- | --project-root [path] | Path to the root of your react-native experience project. The bundle server uses this root path to resolve all web requests. |
137
- | --watch-folders [paths] | Additional folders which will be added to the file-watch list. Comma-separated. By default, Metro watches all project files, and triggers a bundle-reload when anything changes. |
138
- | --asset-plugins [list] | Additional asset plugins to be used by the Metro Babel transformer. Comma-separated list containing plugin modules and/or absolute paths to plugin packages. |
139
- | --source-exts [list] | Additional source-file extensions to include when generating bundles. Comma-separated list, excluding the leading dot. |
140
- | --max-workers [number] | Specifies the maximum number of parallel worker threads to use for transforming files. This defaults to the number of cores available on your machine. |
141
- | --custom-log-reporter-path [string] | Path to a JavaScript file which exports a Metro 'TerminalReporter' function. This replaces the default reporter, which writes all messages to the Metro console. |
142
- | --https | Use a secure (https) web server. When not specified, an insecure (http) web server is used. |
143
- | --key [path] | Path to a custom SSL private key file to use for secure (https) communication. |
144
- | --cert [path] | Path to a custom SSL certificate file to use for secure (https) communication. |
145
- | --reset-cache | Reset the Metro cache. |
146
- | --config [string] | Path to the Metro configuration file. |
147
- | --no-interactive | Disables interactive mode. |
148
-
149
- ## Manage Kit Dependencies
150
-
151
- Manage your `kit` package's dependencies.
156
+ | Override | Description |
157
+ | ----------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
158
+ | --port [number] | Host port to use when listening for incoming server requests. |
159
+ | --host [string] | Host name or address to bind when listening for incoming server requests. When not given, requests from all addresses are accepted. |
160
+ | --projectRoot [path] | Path to the root of your react-native project. The bundle server uses this root path to resolve all web requests. |
161
+ | --watchFolders [paths] | Additional folders which will be added to the file-watch list. Comma-separated. By default, Metro watches all project files. |
162
+ | --assetPlugins [list] | Additional asset plugins to be used by the Metro Babel transformer. Comma-separated list containing plugin module names or absolute paths to plugin packages. |
163
+ | --sourceExts [list] | Additional source-file extensions to include when generating bundles. Comma-separated list, excluding the leading dot. |
164
+ | --max-workers [number] | Specifies the maximum number of parallel worker threads to use for transforming files. This defaults to the number of cores available on your machine. |
165
+ | --reset-cache | Reset the Metro cache. |
166
+ | --custom-log-reporter-path [string] | Path to a JavaScript file which exports a Metro `TerminalReporter` function. This replaces the default reporter, which writes all messages to the Metro console. |
167
+ | --https | Use a secure (https) web server. When not specified, an insecure (http) web server is used. |
168
+ | --key [path] | Path to a custom SSL private key file to use for secure (https) communication. |
169
+ | --cert [path] | Path to a custom SSL certificate file to use for secure (https) communication. |
170
+ | --config [string] | Path to the Metro configuration file. |
171
+ | --no-interactive | Disables interactive mode. |
172
+
173
+ ## Manage Dependencies
174
+
175
+ Manage your package's dependencies.
152
176
 
153
177
  ```
154
178
  $ yarn react-native rnx-dep-check [options] [/path/to/package.json]
@@ -158,10 +182,10 @@ Refer to
158
182
  [@rnx-kit/dep-check](https://github.com/microsoft/rnx-kit/tree/main/packages/dep-check)
159
183
  for details.
160
184
 
161
- ## Generate a Third-Party Notice for a Kit
185
+ ## Generate a Third-Party Notice for a Package
162
186
 
163
187
  Generate a 3rd-party notice, which is an aggregation of all the LICENSE files
164
- from your `kit` package's dependencies.
188
+ from your package's dependencies.
165
189
 
166
190
  > NOTE: A 3rd-party notice is a **legal document**. You are solely responsble
167
191
  > for its content, even if you use `@rnx-kit` to assist you in generating it.
@@ -172,15 +196,16 @@ from your `kit` package's dependencies.
172
196
  $ yarn react-native rnx-write-third-party-notices [options]
173
197
  ```
174
198
 
175
- | Option | Description |
176
- | ------------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
177
- | --source-map-file [file] | The source map file associated with the `kit` package's entry file. This source map eventually leads to all `kit` dependencies. |
178
- | --output-file [file] | The path to use when writing the 3rd-party notice file. |
179
- | --root-path [path] | The root of the repo. This is the starting point for finding each module in the source map dependency graph. |
180
- | --ignore-scopes [string] | Comma-separated list of `npm` scopes to ignore when traversing the source map dependency graph. |
181
- | --ignore-modules [string] | Comma-separated list of modules to ignore when traversing the source map dependency graph. |
182
- | --preamble-text [string] | A string to prepend to the start of the 3rd-party notice. |
183
- | --additional-text [path] | A string to append to the end of the 3rd-party notice. |
199
+ | Option | Description |
200
+ | ------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
201
+ | --root-path [path] | The root of the repo. This is the starting point for finding each module in the source map dependency graph. |
202
+ | --source-map-file [file] | The source map file associated with the package's entry file. This source map eventually leads to all package dependencies and their licenses. |
203
+ | --json | Format the 3rd-party notice file as JSON instead of text. |
204
+ | --output-file [file] | The path to use when writing the 3rd-party notice file. |
205
+ | --ignore-scopes [string] | Comma-separated list of `npm` scopes to ignore when traversing the source map dependency graph. |
206
+ | --ignore-modules [string] | Comma-separated list of modules to ignore when traversing the source map dependency graph. |
207
+ | --preamble-text [string] | A string to prepend to the start of the 3rd-party notice. |
208
+ | --additional-text [path] | A string to append to the end of the 3rd-party notice. |
184
209
 
185
210
  ## Clean a React Native Project
186
211