Skip to content

Commit c1aa91c

Browse files
anmonteiroswannodette
authored andcommitted
CLJS-2295: index-node-modules-dir can't determine :main for package.json files that have . in the string
1 parent aff39ca commit c1aa91c

File tree

2 files changed

+35
-2
lines changed

2 files changed

+35
-2
lines changed

src/main/clojure/cljs/closure.clj

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2226,8 +2226,14 @@
22262226
(let [pkg-json-main (some
22272227
(fn [[pkg-json-path {:strs [main name]}]]
22282228
(when-not (nil? main)
2229-
(let [main-path (str (string/replace pkg-json-path #"package\.json$" "")
2230-
main)]
2229+
;; should be the only edge case in
2230+
;; the package.json main field - Antonio
2231+
(let [main (cond-> main
2232+
(.startsWith main "./")
2233+
(subs 2))
2234+
main-path (-> pkg-json-path
2235+
(string/replace #"package\.json$" "")
2236+
(str main))]
22312237
(when (= main-path path)
22322238
name))))
22332239
pkg-jsons)]

src/test/clojure/cljs/closure_tests.clj

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,19 @@
141141
"@comandeer/css-filter/dist/css-filter.umd"
142142
"@comandeer/css-filter"]}))
143143
modules))))
144+
(test/delete-node-modules)
145+
(spit (io/file "package.json") "{}")
146+
(closure/maybe-install-node-deps! {:npm-deps {"jss-extend" "5.0.0"}})
147+
(let [modules (closure/index-node-modules-dir)]
148+
(is (true? (some (fn [module]
149+
(= module
150+
{:file (.getAbsolutePath (io/file "node_modules/jss-extend/lib/index.js"))
151+
:module-type :es6
152+
:provides ["jss-extend/lib/index.js"
153+
"jss-extend/lib/index"
154+
"jss-extend"
155+
"jss-extend/lib"]}))
156+
modules))))
144157
(.delete (io/file "package.json"))
145158
(test/delete-node-modules))
146159

@@ -208,6 +221,20 @@
208221
"@comandeer/css-filter/dist/css-filter.umd.js"
209222
"@comandeer/css-filter/dist/css-filter.umd"]}))
210223
(closure/index-node-modules ["@comandeer/css-filter"] opts)))))
224+
(test/delete-node-modules)
225+
(spit (io/file "package.json") "{}")
226+
(test/delete-out-files out)
227+
(let [opts {:npm-deps {"jss-extend" "5.0.0"}}]
228+
(closure/maybe-install-node-deps! opts)
229+
(is (true? (some (fn [module]
230+
(= module
231+
{:file (.getAbsolutePath (io/file "node_modules/jss-extend/lib/index.js"))
232+
:module-type :es6
233+
:provides ["jss-extend"
234+
"jss-extend/lib/index.js"
235+
"jss-extend/lib/index"
236+
"jss-extend/lib"]}))
237+
(closure/index-node-modules ["jss-extend"] opts)))))
211238
(.delete (io/file "package.json"))
212239
(test/delete-node-modules)
213240
(test/delete-out-files out)))

0 commit comments

Comments
 (0)