首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >所需的JS依赖项"readable-stream/writable.js“不可用,它是"node_modules/stream-browserify/index.js”所需的

所需的JS依赖项"readable-stream/writable.js“不可用,它是"node_modules/stream-browserify/index.js”所需的
EN

Stack Overflow用户
提问于 2021-02-22 11:50:44
回答 2查看 227关注 0票数 1

当我试图用shadow-cljs构建一个Clojurescript项目时,我得到了这个错误。我尝试过像here那样查找语法错误,但是我可以通过一行和一次导入得到相同的错误,尽管不是所有的导入都会导致相同的错误。

这将进行编译:

代码语言:javascript
复制
(ns campfire.core)

(defn init [] (println "ok"))

这不是:

代码语言:javascript
复制
(ns campfire.core
  (:require ["bugout" :as b]))

(defn init [] (println "ok"))

以上示例的输出为:

代码语言:javascript
复制
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

代码语言:javascript
复制
{
  "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"
  }
}

shadow-cljs.edn

代码语言:javascript
复制
{: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需要npm安装在嵌套的node_modules文件夹中的readable stream ^2.0.2。在其他地方,readable-stream 3.6.0也被安装在顶级node_modules中。Shadow正在尝试针对3.6.0版本的可读流解析writer.js,而不是2.0.2版本。

然而,令人困惑的是,stream-browserify不是依赖跟踪中给出的密码库的依赖关系,而是node-libs-browser的依赖关系,而node-libs-browser本身就是shadow-cljs的依赖关系。

这有没有可能是一个隐藏在阴影中的bug,或者这是预期的行为?

更新2

我已经创建了一个示例存储库,它尽可能简单地复制我所看到的here

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-02-22 16:51:00

您真的在项目中安装了shadow-cljs依赖项吗?目录node_modules/shadow-cljs是否存在?

我看到它列在devDependencies中,所以应该安装它,但如果您从未在项目中实际调用过npm install,或者npm设置为生产模式,不会安装devDependencies,则可能不会安装它。所有这些都是node-libs-browser包的一部分,该包似乎也丢失了,并且由于依赖于shadow-cljs而应该已经安装。

票数 1
EN

Stack Overflow用户

发布于 2021-02-22 14:57:23

基于the link in your first error message,它会告诉npm install所有缺失的内容。

如果您没有运行npm install,那么它本身就会安装package.json中的内容。

如果这不是问题所在,那么npm i readable-stream可能会有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66309813

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档