../lib/utils/unsupported.js'使用Ionic时

当我运行“Ionic start project name”时,我总是得到这个错误消息:

错误消息

Running command - failed![ERROR] An error occurred while running npm install (exit code 1):


module.js:471
throw err;
^


Error: Cannot find module '../lib/utils/unsupported.js'
at Function.Module._resolveFilename (module.js:469:15)
at Function.Module._load (module.js:417:25)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at /usr/local/lib/node_modules/npm/bin/npm-cli.js:19:21
at Object.<anonymous> (/usr/local/lib/node_modules/npm/bin/npm-cli.js:79:3)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
142696 次浏览

尝试删除/usr/local/lib/node_modules/npm并重新安装节点。这应该有用。

在MacOS上使用家酿:

sudo rm -rf /usr/local/lib/node_modules/npm
brew reinstall node

我收到了类似的错误,现在有它的工作。

首先确保你有最新的版本

brew update

删除之前的node实例:

brew uninstall node

然后重新安装最新版本:

brew install node

然后确保它被符号链接到/usr/local(如果还没有)。您将得到一个错误,让您知道要完成这一步。

brew link --overwrite node

关于如何安装/升级节点也有的更多详细信息。

在我的情况下,它是$NODE_PATH丢失:

NODE="/home/ubuntu/local/node" #here your user account after home
NODE_PATH="/usr/local/lib/node_modules"
PATH="$PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:$NODE/bin:$NODE/lib/node_modules"

只检查echo $NODE_PATH为空意味着它没有被设置。建议将它们添加到.bashrc中。

如果你正在使用"n"库@ https://github.com/tj/n。执行以下步骤

  echo $NODE_PATH

如果节点路径为空,则

sudo n latest    - sudo is optional depending on your system

使用n切换Node.js版本后,npm可能无法正常工作。

curl -0 -L https://npmjs.com/install.sh | sudo sh
echo NODE_PATH

您现在应该看到您的节点路径。否则,它可能是别的东西

在Mac OS X(10.12.6)上,我通过以下方法解决了这个问题:

brew uninstall --force node
brew install node

然后我得到一个错误,抱怨节点后安装失败,并重新运行brew postinstall node

然后我得到一个错误:

permission denied @ rb_sysopen /usr/local/lib/node_modules/npm/bin/npx

我通过以下方法解决了这个错误:

sudo chown -R $(whoami):admin /usr/local/lib/node_modules

现在我不会再得到这个错误了。

如前所述。

 sudo rm -rf /usr/local/lib/node_modules/npm
brew uninstall --force node
brew install node

在fedora 27上,我这样解决了这个问题:

sudo rm -f  /usr/local/lib/node_modules/npm
sudo dnf reinstall nodejs

这是一个有用的视频和博客关于从你的计算机操作系统中删除节点。这是一种不同的删除方法,基于你在第一个地方安装node的方式(brew vs.从https://nodejs.org/en/下载的二进制文件

  • 如果您安装了节点与Homebrew,那么brew卸载节点将工作。在终端上运行node -v命令来验证这一点。

  • 否则,如果你已经从nodeJS的网站安装了二进制文件,那么你必须在你的终端上运行这个命令:sudo rm -rf /usr/local/{bin/{node,npm},lib/node_modules/npm,lib/node,share/man/*/node.*}。同样,运行node -v命令进行验证。

  • 在这两种情况下,如果节点完全删除,则成功删除节点应该导致bash无法识别节点是什么

是的,你应该重新安装节点:

sudo rm -rf /usr/local/lib/node_modules/npm
brew uninstall --force node
brew install node

在我的macOS(10.13.3)中,我在重新安装节点版本管理器后解决了这个问题。

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
source ~/.bashrc

我按照前面的答案重新安装了节点。但是我得到了这个错误。

警告:The post-install step did not complete successfully 重试使用brew postinstall node

所以我执行了这个命令

sudo chown -R $(whoami):admin /usr/local/lib/node_modules/

然后跑了

brew postinstall node

我通过混合安装/更新方法得到了这个错误:通过从网站下载包安装节点,后来我使用brew更新。

我通过卸载brew版本来修复:

酿造卸载——忽略依赖项节点

然后我回到节点网站,通过包管理器下载并安装:https://nodejs.org/en/download/ 由于某些原因,无论如何尝试通过brew重新安装都不起作用

只需遵循三个步骤;

  1. 强制清除npm缓存:

    npm cache clean -f < / p >

  2. 使用npm全局安装n包:

    npm install -g n < / p >

  3. 从三个选项中的任意一个安装:

    一。sudo n stable (get the stable version)

    b。sudo n latest (get the latest version of node)

    c。sudo n x.x.x (get the specific version of node) < / p >

https://nodejs.org/en/

只需从官网下载节点,这对我有用!:)

尝试了以上所有/旧的brew安装答案,没有一个是为我的笔记本电脑工作。

只有下面的方法可以解决我的问题。

1)执行如下命令:

sudo rm -rf /usr/local/lib/node_modules/npm
brew uninstall --force node

2)然后进入Node.js官方网站https://nodejs.org/en/download/current/下载最新的安装包。

3)再次运行你的npm命令,它应该不再有任何错误。

此方法在macOS Mojave 10.14.4上工作。

这可能发生在npm/lib文件夹由于某种原因被清空时(也可能由于上次使用中的权限问题而发生)。

重新安装节点可以解决这个问题(如这里的其他答案所述),但我建议使用一个叫做nvm(节点版本管理器)的很棒的工具,它能够管理多个版本的nodenpm -这在开发机器上非常有用,有多个项目需要不同版本的节点。

当你安装nvm时,这个消息将消失,你将有最新版本的nodenpm可以使用。

为了查看nvm中当前安装的节点版本列表,只需运行:

nvm list

要安装和使用新的节点版本,请运行:

nvm install <node_version>

例如安装节点10的最新版本。x,运行:

nvm install 10

为了切换到当前安装的版本,运行:

nvm use <node_version>

为了切换到系统的原始节点版本,只需运行:

nvm use system

希望这能有所帮助。

好运!

错误Cannot find module '../lib/utils/unsupported.js'是由./lib/node_modules/npm/bin/npm-cli.js中的require('../lib/utils/unsupported.js')引起的。

根据nodejs require文档,所需的模块相对于文件进行搜索,因为它以../开始。

因此,如果我们从./lib/node_modules/npm/bin/npm-cli.js开始取相对路径../lib/utils/unsupported.js,所需的模块必须位于./lib/node_modules/npm/lib/utils/unsupported.js中。如果它不在那里,我看到两个选项:

  • 安装已损坏,在这种情况下文森特·杜卡斯特的回答重新安装节点可能工作
  • npm没有到./lib/node_modules/npm/bin/npm-cli.js的符号链接。这就是导致我设置错误的原因。如果你调用npm,它通常会在PATH env变量中列出的目录中搜索它。例如,它可能位于./bin。然而,./bin目录中的npm应该只是前面提到的./lib/node_modules/npm/bin/npm-cli.js的符号链接。如果它不是符号链接,而是直接包含代码,则在安装过程中的某个地方,符号链接被它所链接的文件所取代。在这种情况下,重新创建符号链接应该足够了:cd ./bin; rm npm; ln -s ../lib/node_modules/npm/bin/npm-cli.js npm (update: command fixed, thx @massimo)

所有建议检查NODE_PATHnpmrc配置的答案都应该被忽略,因为相对地搜索模块时不会考虑这些。

我遇到了一个类似的问题,当我尝试通过npm test执行Mocha时,整个../lib/utils目录找不到。我尝试了这里提到的解决方案,但没有成功。最终,我卸载并重新安装了Mocha包这是NPM项目中的一个依赖项,在那之后它就工作了。因此,如果有人在将npm包作为依赖项安装时遇到了这个问题,请尝试卸载并重新安装该包(如果您还没有安装过)!

在Windows上:

移除~/AppData/Roaming目录下的npm文件夹

你可以运行这个命令,它会自动删除以前的npm版本,并安装新版本

curl -qL https://www.npmjs.com/install.sh | sh

我通过运行下面的命令解决了这个问题

nvm install node --reinstall-packages-from=node

我通过删除node_modules,然后重新安装节点稳定版本来解决这个问题。