所需的 JS 依赖项 "readable-stream/writable.js" 不可用,"node_modules/stream-browserify/index.js" 需要它
The required JS dependency "readable-stream/writable.js" is not available, it was required by "node_modules/stream-browserify/index.js"
我在尝试使用 shadow-cljs 构建 Clojurescript 项目时遇到此错误。我已尝试按照 here 所述查找语法错误,但我可以通过一行和一次导入得到相同的错误,尽管并非所有导入都会导致相同的错误。
这样编译:
(ns campfire.core)
(defn init [] (println "ok"))
这不是:
(ns campfire.core
(:require ["bugout" :as b]))
(defn init [] (println "ok"))
以上示例的输出是:
shadow-cljs - config: /home/ru/Projects/campfire/shadow-cljs.edn
shadow-cljs - HTTP server available at http://localhost:3000
shadow-cljs - server version: 2.11.18 running at http://localhost:9630
shadow-cljs - nREPL server started on port 8777
shadow-cljs - watching build :frontend
[:frontend] Configuring build.
[:frontend] Compiling ...
[:frontend] Build failure:
The required JS dependency "readable-stream/writable.js" is not available, it was required by "node_modules/stream-browserify/index.js".
Dependency Trace:
campfire/core.cljs
node_modules/bugout/index.js
node_modules/bs58check/index.js
node_modules/create-hash/browser.js
node_modules/cipher-base/index.js
node_modules/stream-browserify/index.js
Searched for npm packages in:
/home/ru/Projects/campfire/node_modules
See: https://shadow-cljs.github.io/docs/UsersGuide.html#npm-install
package.json
{
"name": "campfire",
"version": "0.0.1",
"private": true,
"scripts": {
"build": "shadow-cljs release frontend"
},
"devDependencies": {
"shadow-cljs": "2.11.18"
},
"dependencies": {
"bugout": "^0.0.10",
"webtorrent": "^0.114.1"
}
}
阴影-cljs.edn
{:source-paths
["src/dev"
"src/main"
"src/test"]
:dependencies
[]
:dev-http {3000 "public"}
:nrepl {:port 8777}
:builds
{:frontend
{:target :browser
:modules {:main {:init-fn campfire.core/init}}}}}
我见过类似的构建错误,这些错误通过清除 .shadow-cljs 等并重建得到修复,但类似的方法似乎没有任何帮助。我是影子的新手,如果这是显而易见的事情,我深表歉意。有人知道这里发生了什么吗?
更新
所以看起来发生的事情是 stream-browserify 2.0.2
需要 readable stream ^2.0.2
,npm 安装在嵌套的 node_modules 文件夹中。在其他地方 readable-stream 3.6.0
正在安装顶层 node_modules。 Shadow 正在尝试针对 3.6.0 版本的可读流而不是 2.0.2 版本解析 writer.js
。
令人困惑的是,stream-browserify 不是依赖项跟踪中给出的 cipher-base 的依赖项,而是 node-libs-browser 的依赖项,它本身是 shadow-cljs 的依赖项。
这可能是阴影中的错误还是预期的行为?
更新 2
我创建了一个示例存储库,它尽可能简单地复制了我所看到的内容 here。
基于 the link in your first error message,它告诉 npm install
缺少什么。
如果您没有 运行 npm install
,它本身会安装您 package.json 中的内容。
如果这不是问题,那么 npm i readable-stream
可能会有所帮助。
你真的在项目中安装了shadow-cljs
依赖吗?目录 node_modules/shadow-cljs
是否存在?
我看到它列在 devDependencies
中,因此应该安装它,但如果您从未在项目中实际调用过 npm install
或者 npm
设置为生产模式,则可能不会不会安装 devDependencies
。所有这些都是 node-libs-browser
包的一部分,它似乎也丢失了,应该安装,因为它是 shadow-cljs
.
的依赖项
我在尝试使用 shadow-cljs 构建 Clojurescript 项目时遇到此错误。我已尝试按照 here 所述查找语法错误,但我可以通过一行和一次导入得到相同的错误,尽管并非所有导入都会导致相同的错误。
这样编译:
(ns campfire.core)
(defn init [] (println "ok"))
这不是:
(ns campfire.core
(:require ["bugout" :as b]))
(defn init [] (println "ok"))
以上示例的输出是:
shadow-cljs - config: /home/ru/Projects/campfire/shadow-cljs.edn
shadow-cljs - HTTP server available at http://localhost:3000
shadow-cljs - server version: 2.11.18 running at http://localhost:9630
shadow-cljs - nREPL server started on port 8777
shadow-cljs - watching build :frontend
[:frontend] Configuring build.
[:frontend] Compiling ...
[:frontend] Build failure:
The required JS dependency "readable-stream/writable.js" is not available, it was required by "node_modules/stream-browserify/index.js".
Dependency Trace:
campfire/core.cljs
node_modules/bugout/index.js
node_modules/bs58check/index.js
node_modules/create-hash/browser.js
node_modules/cipher-base/index.js
node_modules/stream-browserify/index.js
Searched for npm packages in:
/home/ru/Projects/campfire/node_modules
See: https://shadow-cljs.github.io/docs/UsersGuide.html#npm-install
package.json
{
"name": "campfire",
"version": "0.0.1",
"private": true,
"scripts": {
"build": "shadow-cljs release frontend"
},
"devDependencies": {
"shadow-cljs": "2.11.18"
},
"dependencies": {
"bugout": "^0.0.10",
"webtorrent": "^0.114.1"
}
}
阴影-cljs.edn
{:source-paths
["src/dev"
"src/main"
"src/test"]
:dependencies
[]
:dev-http {3000 "public"}
:nrepl {:port 8777}
:builds
{:frontend
{:target :browser
:modules {:main {:init-fn campfire.core/init}}}}}
我见过类似的构建错误,这些错误通过清除 .shadow-cljs 等并重建得到修复,但类似的方法似乎没有任何帮助。我是影子的新手,如果这是显而易见的事情,我深表歉意。有人知道这里发生了什么吗?
更新
所以看起来发生的事情是 stream-browserify 2.0.2
需要 readable stream ^2.0.2
,npm 安装在嵌套的 node_modules 文件夹中。在其他地方 readable-stream 3.6.0
正在安装顶层 node_modules。 Shadow 正在尝试针对 3.6.0 版本的可读流而不是 2.0.2 版本解析 writer.js
。
令人困惑的是,stream-browserify 不是依赖项跟踪中给出的 cipher-base 的依赖项,而是 node-libs-browser 的依赖项,它本身是 shadow-cljs 的依赖项。
这可能是阴影中的错误还是预期的行为?
更新 2
我创建了一个示例存储库,它尽可能简单地复制了我所看到的内容 here。
基于 the link in your first error message,它告诉 npm install
缺少什么。
如果您没有 运行 npm install
,它本身会安装您 package.json 中的内容。
如果这不是问题,那么 npm i readable-stream
可能会有所帮助。
你真的在项目中安装了shadow-cljs
依赖吗?目录 node_modules/shadow-cljs
是否存在?
我看到它列在 devDependencies
中,因此应该安装它,但如果您从未在项目中实际调用过 npm install
或者 npm
设置为生产模式,则可能不会不会安装 devDependencies
。所有这些都是 node-libs-browser
包的一部分,它似乎也丢失了,应该安装,因为它是 shadow-cljs
.