Aprende a resolver el error durante la instalación de un complemento de cordova EISDIR: operación ilegal en un directorio Probablemente esto sea un problema de conexión o la especificación del complemento es incorrecta.

En los últimos días, muchos desarrolladores de Cordova que actualizaron la plataforma Cordova en Node.js a la versión 7.0.1, se enfrentan a una curiosa excepción al instalar complementos que no son tan recientes y que no se han actualizado durante un par de meses. :

Error: Failed to fetch plugin https://url-of-plugin-repository.git via registry.
Probably this is either a connection problem, or plugin spec is incorrect.
Check your connection and plugin name/version/URL.
Error: cmd: Command failed with exit code 4294963228 Error output:
npm ERR! addLocal Could not install C:\Users\username\AppData\Local\Temp\npm-9904-d274866c\git-cache-756b062e\1e132d0a7a8dfd323b59c6b6edf6c4e142d3ee98
npm ERR! Windows_NT 10.0.14393
npm ERR! argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "https://url-of-plugin-repository.git" "--save"
npm ERR! node v7.7.1
npm ERR! npm  v4.1.2
npm ERR! code EISDIR
npm ERR! errno -4068
npm ERR! syscall read

npm ERR! eisdir EISDIR: illegal operation on a directory, read
npm ERR! eisdir This is most likely not a problem with npm itself
npm ERR! eisdir and is related to npm not being able to find a package.json in
npm ERR! eisdir a package you are trying to install.

npm ERR! Please include the following file with any support request:
npm ERR!     c:\xampp\htdocs\cordova\hello\node_modules\npm-debug.log

Como indica el problema, claramente, el problema está relacionado con el package.jsonarchivo, que nunca ha existido en complementos antiguos y, por lo tanto, está causando este problema ahora. Además, este problema ocurre a menudo con complementos que se instalan a través de la URL del repositorio de git, por ejemplo https://github.com/ourcodeworld/cordova-ourcodeworld-filebrowser.git. Esto se logra a través de cordova-fetch, módulo utilizado para obtener módulos de npm y gitURLs. Obtiene los módulos a través de npm install. También puede desinstalar módulos npm de un proyecto.

Solución

Con este error, puedes encontrarte en 2 puntos de vista diferentes:

  • Eres el propietario del complemento.
  • Estás intentando instalar un complemento de terceros.

A. Eres el propietario del complemento

Si es el propietario del complemento y alguien informa que no puede instalar su complemento con el cordova add plugin URLcomando, deberá crear un nuevo package.jsonarchivo en la carpeta raíz de su complemento. Si no está familiarizado con NPM, debería leer más sobre el archivo del paquete en la documentación oficial aquí .

Para crear un nuevo archivo de paquete para su complemento, obviamente usará Node.js en la línea de comando y ejecutará el siguiente comando (una vez ubicado con el terminal en la carpeta de su complemento):

npm init

Este comando iniciará un mensaje interactivo (que simplemente puede omitir presionando Enter en cada pregunta) que le permitirá crear su archivo package.json. Obviamente, aunque no es necesario, debes proporcionar correctamente toda la información. El package.jsonarchivo ubicado en la carpeta raíz del complemento tendrá el siguiente aspecto: 

{
    "name": "cordova-ourcodeworld-filebrowser",
    "version": "1.0.0",
    "description": "Some description of what your plugin does",
    "main": "index.js",
    "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1"
    },
    "repository": {
        "type": "git",
        "url": "git+https://github.com/username/plugin-repository.git"
    },
    "keywords": [],
    "author": "Author Name",
    "license": "MIT",
    "bugs": {
        "url": "https://github.com/username/plugin-repository/issues"
    },
    "homepage": "https://github.com/username/plugin-repository#readme"
}

Obviamente, la información debe cambiarse de acuerdo con la información correcta de su / el complemento.

B. Si es un complemento de terceros

Si no es el propietario del complemento y solo está intentando instalar un complemento increíble que acaba de encontrar en Github, debe alentar al propietario del complemento a que cree este archivo lo antes posible para evitar esto. error de aparecer en instalaciones futuras. Si el complemento parece que ya no se mantiene, entonces puede descargar el complemento con git, crear este archivo usted mismo y finalmente instalar el complemento desde la fuente local.

1. Descarga el código fuente del repositorio

Si el complemento está alojado en Github, puede clonarlo en una carpeta local en su computadora usando git, por ejemplo (en este ejemplo se clonará C:/Users/Me/Desktop):

git clone https://github.com/ourcodeworld/cordova-ourcodeworld-filebrowser.git

En el directorio de clonación debería haber ahora (una vez terminado) una nueva carpeta con el nombre del repositorio de clonación.

2. Cree el archivo package.json

Siga los pasos de la opción A (usted es el propietario del complemento) para crear el package.jsonarchivo.

3. Instálelo desde la fuente local

Como paso final, puede instalar el complemento desde el repositorio clonado, pero en lugar de proporcionar la URL de git, proporcione la ruta local al complemento:

REM Navega a la carpeta de tu proyecto cordova con la terminal
cd FolderOfYourCordovaProject
REM instalar el complemento desde la fuente local
cordova plugin add C:/Users/Me/Desktop/cordova-ourcodeworld-filebrowser

Que te diviertas ❤️!


Interesado en la programación desde los 14 años, Carlos es un programador autodidacta, fundador y autor de la mayoría de los artículos de Our Code World.

Conviertete en un programador más sociable

Patrocinadores