我正在尝试在我的CLJS代码(在这种情况下,[date-fns|
https://github.com/date-fns/date-fns]), 中使用本地NPM模块,并在初次尝试监听时它正常工作,然而在后续的监听中,它失败了,以下是在我的控制台中出现的错误。
base.js:1357 Uncaught Error: Undefined nameToPath for date_fns
at visitNode (base.js:1357)
at Object.goog.writeScripts_ (base.js:1369)
at Object.goog.require (base.js:706)
at index.html:8
为了重现,我创建了一个构建脚本,如下所示
(require '[cljs.build.api :as b])
(b/watch "src"
{:main 'npm.core
:output-to "out/npm.js"
:output-dir "out"
:npm-deps {:date-fns "1.29.0"}})
以及一个最小化测试文件
(ns npm.core
(:require [date-fns :as dfn]))
(def now (js/Date.))
(.write js/document "Today is " (dfn/format now "dddd"))
我还在使用本地`package.json`文件而不是使用`install_deps true`进行测试 - 我的`package.json`(由CLJS生成)看起来像这样
{
"dependencies": {
"@cljs-oss/module-deps": "^1.1.1",
"date-fns": "^1.29.0"
}
}
当我运行
npm install
java -cp ../clojurescript/target/cljs.jar:src clojure.main watch.clj
一切都工作正常,然而当我CTRL+C并再次运行相同的命令时,我却得到了上述错误。
但是,如果(并且仅当)我删除`out`目录并第三次运行命令时,它又可以正常工作了。
如果您需要其他详细信息,请告知。