离子错误:找不到模块'dezalgo'

时间:2017-12-11 22:05:08

标签: ios node.js cordova ionic-framework npm

我正在尝试将ios平台添加到我的项目中,以便我可以在XCode中构建它。我运行了以下命令:ionic cordova platform add ios

这是我得到的错误:

ionic cordova platform add ios
> cordova platform add ios --save
module.js:544
    throw err;
    ^

Error: Cannot find module 'dezalgo'
    at Function.Module._resolveFilename (module.js:542:15)
    at Function.Module._load (module.js:472:25)
    at Module.require (module.js:585:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/Users/chando/Documents/GIT/testproject/node_modules/cordova-lib/node_modules/npm/lib/utils/correct-mkdir.js:2:15)
    at Module._compile (module.js:641:30)
    at Object.Module._extensions..js (module.js:652:10)
    at Module.load (module.js:560:32)
    at tryModuleLoad (module.js:503:12)
    at Function.Module._load (module.js:495:3)
[ERROR] Exception: 

我尝试过删除node_modules的多种变体,安装最新版本的ionic,npm等无济于事。

还有其他人遇到过这个吗?

这是我的离子信息:

cli包:(/ usr / local / lib / node_modules)

@ionic/cli-utils  : 1.19.0
ionic (Ionic CLI) : 3.19.0

全球套餐:

cordova (Cordova CLI) : not installed

本地包裹:

@ionic/app-scripts : 2.1.4
Cordova Platforms  : none
Ionic Framework    : ionic-angular 3.9.2

系统:

Node  : v9.2.1
npm   : 5.6.0 
OS    : macOS Sierra
Xcode : Xcode 9.2 Build version 9C40b 

环境变量:

ANDROID_HOME : not set

其他:

backend : pro

2 个答案:

答案 0 :(得分:3)

我正在使用Node.js 9.7.0和npm 5.6.0。

使用rm -rf node_modules && npm install进行全新安装也可以解决此错误。

在撰写本文时,问题仍然没有解决。许多人在几个GitHub问题板上抱怨这个dezalgo错误:

编辑:当其中一个依赖项依赖于旧的npm版本(例如davidnpm-check-updates包)时,似乎会出现此问题。

答案 1 :(得分:2)

今天早上我的项目更新到最新的Ionic / Angular后出现了这个问题。这是一种解决方法,但它对我有用:

  1. 将“dezalgo”:“~1.0”添加到package.json的devDependencies部分
  2. 运行npm prune
  3. 运行npm install
  4. 构建项目
  5. 我无法告诉你为什么它的工作原理除了猜测所有NPM模块中的某个地方有人忘了包含这种依赖。我还应该注意到我也更新了我的全局模块,但我怀疑这会对此产生任何影响。