|
221 | 221 | ;; =============================================================================
|
222 | 222 | ;; Node.js / NPM dependencies
|
223 | 223 |
|
| 224 | +(defn compiler-opts? [m] |
| 225 | + (and (map? m) |
| 226 | + (or (contains? m :output-to) |
| 227 | + (contains? m :modules) |
| 228 | + (contains? m :npm-deps) |
| 229 | + (contains? m :main) |
| 230 | + (contains? m :optimizations) |
| 231 | + (contains? m :foreign-libs)))) |
| 232 | + |
224 | 233 | (defn install-node-deps!
|
225 | 234 | "EXPERIMENTAL: Install the supplied dependencies via NPM. dependencies must be
|
226 |
| - a map of name to version." |
| 235 | + a map of name to version or a valid compiler options map." |
227 | 236 | ([dependencies]
|
228 |
| - (install-node-deps! dependencies |
229 |
| - (when-not (nil? env/*compiler*) |
230 |
| - (:options @env/*compiler*)))) |
| 237 | + (if (compiler-opts? dependencies) |
| 238 | + (install-node-deps! (:npm-deps dependencies) dependencies) |
| 239 | + (install-node-deps! dependencies |
| 240 | + (when-not (nil? env/*compiler*) |
| 241 | + (:options @env/*compiler*))))) |
231 | 242 | ([dependencies opts]
|
232 | 243 | {:pre [(map? dependencies)]}
|
233 | 244 | (closure/check-npm-deps opts)
|
|
237 | 248 | (defn get-node-deps
|
238 | 249 | "EXPERIMENTAL: Get the Node.js dependency graph of the supplied dependencies.
|
239 | 250 | Dependencies must be a sequence of strings or symbols naming packages or paths
|
240 |
| - within packages (e.g. [react \"react-dom/server\"]. Assumes dependencies have |
241 |
| - been been previously installed, either by `cljs.build.api/install-node-deps!` |
242 |
| - or by an NPM client, and reside in the `node_modules` directory." |
| 251 | + within packages (e.g. [react \"react-dom/server\"] or a valid compiler options |
| 252 | + map. Assumes dependencies have been been previously installed, either by |
| 253 | + `cljs.build.api/install-node-deps!` or by an NPM client, and reside in the |
| 254 | + `node_modules` directory." |
243 | 255 | ([dependencies]
|
244 |
| - (get-node-deps dependencies |
245 |
| - (when-not (nil? env/*compiler*) |
246 |
| - (:options @env/*compiler*)))) |
| 256 | + (if (compiler-opts? dependencies) |
| 257 | + (get-node-deps (keys (:npm-deps dependencies)) dependencies) |
| 258 | + (get-node-deps |
| 259 | + (when-not (nil? env/*compiler*) |
| 260 | + (:options @env/*compiler*))))) |
247 | 261 | ([dependencies opts]
|
248 | 262 | {:pre [(sequential? dependencies)]}
|
249 | 263 | (closure/index-node-modules
|
|
0 commit comments