npm 使用Ubuntu 20.04.5时未找到节点模块

xqkwcwgp  于 2023-02-19  发布在  其他
关注(0)|答案(1)|浏览(213)

我是一个使用WSL的Windows 10用户。我使用的是Microsoft Store提供的Ubuntu 20. 04. 5,执行节点命令没有问题。但是,我尝试将Ubuntu 20.04.5更新为Ubuntu Jammy(22.x),我发现在安装了nodejs和npm之后,当我试图使用nodejs时,它会产生一些错误。我决定回到使用Ubuntu 20. 04. 5,在重新安装nodejs和npm之后,我遇到了与Jammy相同的问题。当我尝试使用node运行我的纯JavaScript应用程序时,我遇到了以下错误。到目前为止,我还没有找到任何解决我的问题的方法。
我也尝试重新启动终端以及我的计算机。我不断遇到一个错误,表明它找不到我正在寻找的模块。请注意,我没有使用yarn或curl进行任何下载,只使用apt安装以及npm安装。
当我尝试在正确的目录中运行app.js文件时。

>> node app.js
noseinternal/modules/cjs/loader.js:638
    throw err;
    ^

Error: Cannot find module 'stream/promises'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
    at Function.Module._load (internal/modules/cjs/loader.js:562:25)
    at Module.require (internal/modules/cjs/loader.js:692:17)
    at require (internal/modules/cjs/helpers.js:25:18)
    at Object.<anonymous> (/mnt/c/Users/.../group-project-1-group-6-15064/lib/weatherHandler.js:4:22)
    at Module._compile (internal/modules/cjs/loader.js:778:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)

到目前为止,这个错误似乎是有道理的,尽管我在目录中有一个node_modules文件夹,但它可能没有它试图加载的特定模块。
因此,我尝试使用node install命令安装基于package.json的所有依赖项。

>> node install
internal/modules/cjs/loader.js:638
    throw err;
    ^

Error: Cannot find module '/mnt/c/Users/.../group-project-1-group-6-15064/install'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
    at Function.Module._load (internal/modules/cjs/loader.js:562:25)
    at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
    at startup (internal/bootstrap/node.js:283:19)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:623:3)

在我重新安装所有程序之前,这个命令运行得非常好。
我也试着在我的.bashrc文件中添加路径,但没有用。我相信这是一件如此简单和令人沮丧的事情,但经过30多个小时的故障排除,我还没有任何突破。
可能有用的信息:

>> which node
/usr/bin/node

>> node -v
V10.19.0

>> which npm
/usr/bin/npm

>> npm -v
6.14.4

>> sudo npm install --global --verbose nodejs
npm info it worked if it ends with ok
npm verb cli [ '/usr/bin/node',
npm verb cli   '/usr/bin/npm',
npm verb cli   'install',
npm verb cli   '--global',
npm verb cli   '--verbose',
npm verb cli   'nodejs' ]
npm info using npm@6.14.4
npm info using node@v10.19.0
...
npm verb unbuild rmStuff nodejs@0.0.0 from /usr/local/lib/node_modules
...
npm verb exit [ 0, true ]
uqdfh47h

uqdfh47h1#

节点15增加stream/promises:www.example.com网站。https://nodejs.org/api/stream.html#streams-promises-api.
您必须更新您的Node.js,请参考:https://learn.microsoft.com/en-us/windows/dev-environment/javascript/nodejs-on-wsl
您可以使用nvm安装和管理节点版本

# Download curl CLI utility
sudo apt-get install curl

# download nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash

command -v nvm

如果不起作用,请参考nvm的故障排除指南。
设置nvm后,可以运行

nvm install 16 # For example to install Node.js v16
nvm use 16 # To enable it in your current terminal

之后,您可能需要重新安装软件包以避免任何不必要的行为,只需删除当前项目中的node_modules并重新运行npm install即可。

相关问题