web-dev-qa-db-fra.com

sh: 1: rimraf: introuvable lorsque j'exécute npm run build dans vagrant installé sur Windows 10

Je veux exécuter un projet de webpack dans Vagrant (installé sur Windows 10) où j'ai intégré une machine virtuelle Ubuntu 16.04.

J'ai pu installer npm 5.6.0 et nodejs v8.9.4 avec beaucoup de succès.

J'ai essayé d'exécuter npm install pour installer toutes mes dépendances. Après avoir obtenu ces erreurs:

...
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:258:23)
gyp ERR! stack     at emitTwo (events.js:126:13)
gyp ERR! stack     at ChildProcess.emit (events.js:214:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:198:12)
gyp ERR! System Linux 4.4.0-116-generic
gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /vagrant/src/my_project/static/node_modules/contextify
gyp ERR! node -v v8.9.4
gyp ERR! node-gyp -v v3.6.2
gyp ERR! not ok
...

J'ai essayé : npm install --no-bin-links, ce qui m'a donné le même genre d'erreurs ci-dessus.

Je lance donc: npm run build

Et maintenant, je continue à recevoir cette erreur:

sh: 1: rimraf: not found
npm ERR! file sh
npm ERR! code ELIFECYCLE
npm ERR! errno ENOENT
npm ERR! syscall spawn
npm ERR! [email protected] clean: `rimraf dist`
npm ERR! spawn ENOENT
npm ERR!
npm ERR! Failed at the [email protected] clean script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/vagrant/.npm/_logs/2018-03-04T04_44_09_988Z-debug.log
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] build: `npm run clean && webpack`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/vagrant/.npm/_logs/2018-03-04T04_44_10_048Z-debug.log

Voici mon package.json:

{
  "name": "my-project",
  "version": "1.0.0",
  "description": "project",
  "main": "index.js",
  "scripts": {
    "clean": "rimraf dist",
    "build": "npm run clean && webpack",
    "serve": "webpack-dev-server"
  },
  "repository": "",
  "author": "Edgar KAMDEM",
  "license": "ISC",
  "dependencies": {
    "acorn": "^5.5.0",
    "axios": "^0.17.1",
    "bootstrap": "^4.0.0-alpha.6",
    "fabric": "^1.7.22",
    "file-loader": "^1.1.5",
    "font-awesome": "^4.7.0",
    "jquery": "^3.2.1",
    "jquery-ui-dist": "^1.12.1",
    "lodash": "^4.17.4",
    "mxgraph": "^3.8.0",
    "popper.js": "^1.12.9",
    "react": "^16.2.0",
    "react-dom": "^16.2.0",
    "react-input-range": "^1.2.2",
    "react-redux": "^5.0.6",
    "react-router": "^4.2.0",
    "react-router-dom": "^4.2.2",
    "redux": "^3.7.2",
    "redux-form": "^7.2.0",
    "redux-promise": "^0.5.3",
    "redux-thunk": "^2.2.0"
  },
  "devDependencies": {
    "autoprefixer": "^7.1.6",
    "babel-core": "^6.26.0",
    "babel-loader": "^7.1.2",
    "css-loader": "^0.28.7",
    "extract-text-webpack-plugin": "^3.0.2",
    "html-webpack-plugin": "^2.30.1",
    "node-sass": "^4.7.2",
    "postcss-loader": "^2.0.9",
    "precss": "^2.0.0",
    "rimraf": "^2.6.2",
    "sass-loader": "^6.0.6",
    "style-loader": "^0.19.0",
    "webpack": "^3.11.0",
    "webpack-dev-server": "^2.11.2"
  }
}

Je ne sais pas quoi faire, je suis perdu. J'ai tout essayé sur Google (Github, SO etc). Rien ne fonctionne.

Aidez-moi!

11
kabrice

Ajoutez simplement ce script à votre package.json:

"scripts": {
    ...
    "rimraf": "./node_modules/rimraf/bin.js",
}

Le comportement actuel recherche rimraf installé globalement (vous pouvez également le faire en exécutant npm i -g rimraf), mais la ligne ci-dessus indique qu'il doit utiliser la version du projet local.

6
Daniel Kucal