如何在 ClosureScript 中使用导入具有相对路径的模块的 ES6 模块?
How to use ES6 modules that import modules with relative paths in ClosureScript?
我正在尝试在 ClojureScript 应用程序中使用 Twitter 的 Bootstrap 4(测试版)。由于 CLJS-2369. So my next attempt is to use the :foreign-libs
compiler option (see github.com/au-phiware/cljsbuild-bootstrap4):
,使用 :npm-deps
编译器选项不起作用
:foreign-libs [{:file "node_modules/bootstrap/js/src/util.js"
:provides ["bootstrap.util"]
:module-type :es6}
{:file "node_modules/bootstrap/js/src/alert.js"
:provides ["bootstrap.alert"]
:requires ["bootstrap.util"]
:module-type :es6}]})
在代码中,我要求模块为:
(ns cljsbuild-bootstrap4.core
(:require [bootstrap.alert :as alert]))
但是我遇到了这个错误:
events.js:160
throw er; // Unhandled 'error' event
^
Error: Can't resolve './util' in '~/cljsbuild-bootstrap4'
at onError (~/cljsbuild-bootstrap4/node_modules/enhanced-resolve/lib/Resolver.js:61:15)
at loggingCallbackWrapper (~/cljsbuild-bootstrap4/node_modules/enhanced-resolve/lib/createInnerCallback.js:31:19)
at runAfter (~/cljsbuild-bootstrap4/node_modules/enhanced-resolve/lib/Resolver.js:158:4)
at innerCallback (~/cljsbuild-bootstrap4/node_modules/enhanced-resolve/lib/Resolver.js:146:3)
at loggingCallbackWrapper (~/cljsbuild-bootstrap4/node_modules/enhanced-resolve/lib/createInnerCallback.js:31:19)
at next (~/cljsbuild-bootstrap4/node_modules/tapable/lib/Tapable.js:252:11)
at innerCallback (~/cljsbuild-bootstrap4/node_modules/enhanced-resolve/lib/Resolver.js:144:11)
at loggingCallbackWrapper (~/cljsbuild-bootstrap4/node_modules/enhanced-resolve/lib/createInnerCallback.js:31:19)
at next (~/cljsbuild-bootstrap4/node_modules/tapable/lib/Tapable.js:249:35)
at resolver.doResolve.createInnerCallback (~/cljsbuild-bootstrap4/node_modules/enhanced-resolve/lib/DescriptionFilePlugin.js:44:6)
注意:我也尝试了以下 :foreign-libs
选项但收到了相同的结果:
:foreign-libs [{:file "node_modules/bootstrap/js/src"
:module-type :es6}]})
这是 1.9.946 的问题。 1.10.238 不再重现。
已检查自 CLJS-2369
我正在尝试在 ClojureScript 应用程序中使用 Twitter 的 Bootstrap 4(测试版)。由于 CLJS-2369. So my next attempt is to use the :foreign-libs
compiler option (see github.com/au-phiware/cljsbuild-bootstrap4):
:npm-deps
编译器选项不起作用
:foreign-libs [{:file "node_modules/bootstrap/js/src/util.js"
:provides ["bootstrap.util"]
:module-type :es6}
{:file "node_modules/bootstrap/js/src/alert.js"
:provides ["bootstrap.alert"]
:requires ["bootstrap.util"]
:module-type :es6}]})
在代码中,我要求模块为:
(ns cljsbuild-bootstrap4.core
(:require [bootstrap.alert :as alert]))
但是我遇到了这个错误:
events.js:160
throw er; // Unhandled 'error' event
^
Error: Can't resolve './util' in '~/cljsbuild-bootstrap4'
at onError (~/cljsbuild-bootstrap4/node_modules/enhanced-resolve/lib/Resolver.js:61:15)
at loggingCallbackWrapper (~/cljsbuild-bootstrap4/node_modules/enhanced-resolve/lib/createInnerCallback.js:31:19)
at runAfter (~/cljsbuild-bootstrap4/node_modules/enhanced-resolve/lib/Resolver.js:158:4)
at innerCallback (~/cljsbuild-bootstrap4/node_modules/enhanced-resolve/lib/Resolver.js:146:3)
at loggingCallbackWrapper (~/cljsbuild-bootstrap4/node_modules/enhanced-resolve/lib/createInnerCallback.js:31:19)
at next (~/cljsbuild-bootstrap4/node_modules/tapable/lib/Tapable.js:252:11)
at innerCallback (~/cljsbuild-bootstrap4/node_modules/enhanced-resolve/lib/Resolver.js:144:11)
at loggingCallbackWrapper (~/cljsbuild-bootstrap4/node_modules/enhanced-resolve/lib/createInnerCallback.js:31:19)
at next (~/cljsbuild-bootstrap4/node_modules/tapable/lib/Tapable.js:249:35)
at resolver.doResolve.createInnerCallback (~/cljsbuild-bootstrap4/node_modules/enhanced-resolve/lib/DescriptionFilePlugin.js:44:6)
注意:我也尝试了以下 :foreign-libs
选项但收到了相同的结果:
:foreign-libs [{:file "node_modules/bootstrap/js/src"
:module-type :es6}]})
这是 1.9.946 的问题。 1.10.238 不再重现。
已检查自 CLJS-2369