错误:找不到模块‘/opt/Ferdi/resources/app.asar/node_modules/@meetfranz/theme/lib/index.js’
Posted
技术标签:
【中文标题】错误:找不到模块‘/opt/Ferdi/resources/app.asar/node_modules/@meetfranz/theme/lib/index.js’【英文标题】:Error: Cannot find module ‘/opt/Ferdi/resources/app.asar/node_modules/@meetfranz/theme/lib/index.js’ 【发布时间】:2021-09-21 02:05:21 【问题描述】:我正在与参与 ferdi 项目的程序员合作。
https://getferdi.com/
Ferdi 的座右铭是:“您的所有消息服务都集中在一个地方”。事实上,它就像 franz,它适用于很多操作系统,例如 mac os M1、windows、ubuntu x64 位。我们正在努力让它在 arm64 / jetson nano / Tegra 上也能工作。不幸的是,在这个操作系统上它不能正常工作,因为我们有一个我们无法修复的 javascript 错误。这是如何重现它:
[ `root@zi-desktop` ](mailto:root@zi-desktop) `:~/Desktop/zi/Work/I9/Virt/dockers/arm64/ferdi2# ferdi`
`[21980:0709/185715.104381:FATAL:electron_main_delegate.cc(252)] Running as root without --no-sandbox is not supported. See` [ `https://crbug.com/638180` ](https://crbug.com/638180) `.Trace/breakpoint trap`
[ `root@zi-desktop` ](mailto:root@zi-desktop) `:~/Desktop/zi/Work/I9/Virt/dockers/arm64/ferdi2# ferdi --no-sandbox`
`A JavaScript error occurred in the main processUncaught Exception:Error: Cannot find module` [ `'/opt/Ferdi/resources/app.asar/node_modules/@meetfranz` ](mailto:'/opt/Ferdi/resources/app.asar/node_modules/@meetfranz) `/theme/lib/index.js'.
Please verify that the package.json has a valid "main" entryat
tryPackage (internal/modules/cjs/loader.js:310:19)at
Function.Module._findPath (internal/modules/cjs/loader.js:523:18)at
Module._resolveFilename (internal/modules/cjs/loader.js:874:27)at
Function.n._resolveFilename (electron/js2c/browser_init.js:257:1128)at
Module._load (internal/modules/cjs/loader.js:732:27)at Function.f._load
(electron/js2c/asar_bundle.js:5:12913)`
(以普通用户身份运行会出现同样的错误)
基本上,我们使用这样的 docker 容器来生成我们将安装在 os 上的 deb 包。下面你可以看到 arm64 / tegra / jetson nano 的 Dockerfile:
`FROM node:fermium-buster`
`LABEL Author="ZioMario <` [ `marietto2008@gmail.com` ](mailto:marietto2008@gmail.com) `>"`
`LABEL Title="arm64/ferdi"`
`# Enviorment variables`
`#ARG username=ferdi-arm64-builder`
`#ENV HOME /home/$username`
`ENV DEBIAN_FRONTEND=noninteractive`
`ENV LC_ALL=C.UTF-8`
`ENV LANG=C.UTF-8`
`ENV PATH="/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/usr/local/lib:/usr/include:/usr/share"`
`#ENV HW="GPU"`
`#ENV TERM xterm`
`ENV USE_SYSTEM_FPM=true`
`ENV PREVAL_BUILD_INFO_PLACEHOLDERS=true`
`#RUN apt-get update && apt-get install -y ca-certificates curl netbase wget tzdata rpm git xz-utils nano gedit ruby gem`
`RUN apt-get update && apt install -y rpm ruby gem && gem install fpm --no-ri --no-rdoc --no-document`
`WORKDIR /ferdi`
`RUN git clone` [ `https://github.com/getferdi/ferdi.git` ](https://github.com/getferdi/ferdi.git) `. && git submodule update --init --recursive`
`RUN npx lerna bootstrap`
`RUN cd recipes && npm i && npm run package`
`RUN npm run build`
它在任何地方都可以使用,除了在 jetson nano 上。你对如何解决它有一些想法吗?谢谢。
【问题讨论】:
【参考方案1】:在这些情况下,通常尝试删除package-lock.json
和node_modules
,然后尝试再次运行npm install
。
您似乎也遇到了与package.json
中的"main"
属性相关的问题。 package.json
的主要属性是指向 package.json
所描述的模块的入口点的方向。
例如在 Node.js 应用程序中,当通过 required 语句调用模块时,模块从 main 属性中指定的文件中导出的内容将返回给 Node.js 应用程序。
【讨论】:
以上是关于错误:找不到模块‘/opt/Ferdi/resources/app.asar/node_modules/@meetfranz/theme/lib/index.js’的主要内容,如果未能解决你的问题,请参考以下文章