|
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