npm找不到模块'encoding'。

4

我在npm中遇到了这种问题。顺便说一下,我正在使用VSCode,我的笔记本电脑刚刚格式化,我的操作系统是Ubuntu。当我安装某些东西时,我遇到的错误是:

npm ERR! code MODULE_NOT_FOUND
npm ERR! cannot find module 'encoding'

    // Log

0 info it worked if it ends with ok
1 verbose cli [ '/usr/bin/node', '/usr/bin/npm', 'install', '-g', 'jshint' ]
2 info using npm@5.8.0
3 info using node@v8.11.2
4 verbose npm-session 94ee8611aa9e8514
5 silly install loadCurrentTree
6 silly install readGlobalPackageData
7 silly fetchPackageMetaData error for jshint@latest Cannot find module 'encoding'
8 verbose stack Error: Cannot find module 'encoding'
8 verbose stack     at Function.Module._resolveFilename (module.js:547:15)
8 verbose stack     at Function.Module._load (module.js:474:25)
8 verbose stack     at Module.require (module.js:596:17)
8 verbose stack     at require (internal/module.js:11:18)
8 verbose stack     at Object.<anonymous> (/usr/share/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/body.js:13:17)
8 verbose stack     at Module._compile (module.js:652:30)
8 verbose stack     at Object.Module._extensions..js (module.js:663:10)
8 verbose stack     at Module.load (module.js:565:32)
8 verbose stack     at tryModuleLoad (module.js:505:12)
8 verbose stack     at Function.Module._load (module.js:497:3)
8 verbose stack     at Module.require (module.js:596:17)
8 verbose stack     at require (internal/module.js:11:18)
8 verbose stack     at Object.<anonymous> (/usr/share/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/index.js:15:14)
8 verbose stack     at Module._compile (module.js:652:30)
8 verbose stack     at Object.Module._extensions..js (module.js:663:10)
8 verbose stack     at Module.load (module.js:565:32)
9 verbose cwd /opt/lampp/htdocs/My Website #1
10 verbose Linux 4.18.0-parrot8-amd64
11 verbose argv "/usr/bin/node" "/usr/bin/npm" "install" "-g" "jshint"
12 verbose node v8.11.2
13 verbose npm  v5.8.0
14 error code MODULE_NOT_FOUND
15 error Cannot find module 'encoding'
16 verbose exit [ 1, true ]

我尝试重新安装Node.js/npm,但仍无法正常工作。

这只发生在 encoding 包中还是所有包都一样?正如你所说,你格式化了你的操作系统,我怀疑这是任何一个包的问题。我也想请你检查 npmrc。你能把那些细节也发出来吗? - CRayen
不确定,但也许你需要先安装那个模块?之前它有用过吗,还是新项目? - maximelian1986
4个回答

4
阅读冗长的输出时,您可以在第7行中阅读以下内容: 显然,您尝试通过npm全局安装jshint(),如此处所述: 这可能是由于您的node版本和npm版本之间存在依赖关系问题。
或者是node_modules文件夹中的冲突。建议确保它干净,尝试:
rm -rf node_modules && npm install

如果npm尝试将其安装到不是您的NODE_PATH的位置,请检查您的NODE_PATH。

编辑:

我刚在debian上使用node v8.11.1和npm 6.0.1尝试了一下,对我来说运行良好。

您是否尝试过这些或其他版本的node和npm(使用LTS)?


我尝试安装其他的Node包,但是没有成功,出现了相同的错误。rm -rf node_modules && npm install我在终端中尝试了这个命令,但还是不起作用。 - user10385727
我的意思是你尝试安装其他版本的node/npm了吗?也许你的node版本和npm安装程序有冲突。 - iLuvLogix
不是。但我记得最近更新了我的构建必备工具,可能会影响到node/npm。 - user10385727
我已经尝试使用build-essential 12.3,没有任何问题,我建议您尝试安装上述版本,以进一步缩小问题范围。还要检查您的NODE_PATH,如我的答案中所提到的。 - iLuvLogix
所以...我尝试了你说过的其他所有方法都没有起作用。但是我的教授已经给出了一个解决方案,就是重新安装Linux。我们尝试了许多可能的解决方案,但是它们都没有起作用,所以他建议重新安装Linux,现在一切正常。 - user10385727

2

可能缺少依赖项,

请尝试:

rm -rf node_modules && npm install

如果您是Mac或Linux用户,并且遇到了权限问题,请尝试以下操作:
rm -rf node_modules && npm install

1
如果我理解您的问题,您在系统中安装npm遇到了一些问题。
尝试以下两个步骤:
1.) 运行命令 npm cache clean 2.) 然后从文件结构中删除npm文件夹并重新安装npm

1
npm ERR! As of npm@5, the npm cache self-heals from corruption issues and data extracted from the cache is guaranteed to be valid. If you want to make sure everything is consistent, use 'npm cache verify' instead. On the other hand, if you're debugging an issue with the installer, you can use 'npm install --cache /tmp/empty-cache' to use a temporary cache instead of nuking the actual one. npm ERR! If you're sure you want to delete the entire cache, rerun this command with --force. - Azurespot

0

我第一次遇到了这个问题,我的情况是在应用程序运行时保持了我的Node.js开发服务器的运行,但实际上我将应用程序的位置移动到一个新文件夹中,而服务器仍在运行。从新位置简单地重新启动服务器就解决了这个问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接