Bonjour,
Je veux installer ce super plugin node.js « BrowserSync » sur une machine vagrant. J'ai installer node.js et npm sur cette machine. Quand je veux tapper la commande d'installation de BrowserSync.

[01:01 AM]-[xxx@packer-xxx-xx]-~] 
$ npm install -g browser-sync

Il me retourne une tonne d'erreur :

npm ERR! Error: EACCES, mkdir '/usr/local/lib/node_modules/browser-sync'
npm ERR! { [Error: EACCES, mkdir '/usr/local/lib/node_modules/browser-sync']
npm ERR! errno: 3,
npm ERR! code: 'EACCES',
npm ERR! path: '/usr/local/lib/node_modules/browser-sync',
npm ERR! fstream_type: 'Directory',
npm ERR! fstream_path: '/usr/local/lib/node_modules/browser-sync',
npm ERR! fstream_class: 'DirWriter',
npm ERR! fstream_stack: 
npm ERR! '/usr/local/lib/node_modules/npm/node_modules/fstream/lib/dir-writer.js:36:23',
npm ERR! '/usr/local/lib/node_modules/npm/node_modules/mkdirp/index.js:46:53',
npm ERR! 'Object.oncomplete (fs.js:107:15)' ] }
npm ERR! 
npm ERR! Please try running this command again as root/Administrator.
npm ERR! System Linux 3.2.0-4-amd64
npm ERR! command "/usr/local/bin/node" "/usr/local/bin/npm" "install" "-g" "browser-sync"
npm ERR! cwd /home/vagrant
npm ERR! node -v v0.10.31
npm ERR! npm -v 1.4.23
npm ERR! path /usr/local/lib/node_modules/browser-sync
npm ERR! fstream_path /usr/local/lib/node_modules/browser-sync
npm ERR! fstream_type Directory
npm ERR! fstream_class DirWriter
npm ERR! code EACCES
npm ERR! errno 3
npm ERR! stack Error: EACCES, mkdir '/usr/local/lib/node_modules/browser-sync'
npm ERR! fstream_stack /usr/local/lib/node_modules/npm/node_modules/fstream/lib/dir-writer.js:36:23
npm ERR! fstream_stack /usr/local/lib/node_modules/npm/node_modules/mkdirp/index.js:46:53
npm ERR! fstream_stack Object.oncomplete (fs.js:107:15)
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR! /home/vagrant/npm-debug.log
npm ERR! not ok code 0

Pourquoi ça ne fonctionne pas sur un mac...

Merci.

14 réponses


Bonjour,

L'erreur a l'air simple, il n'a pas le droit de creer un dossier dans /usr/local/bin passe en root puis refait ton installation.

Cordialement

Bonjour, j'ai le même problème, que je sois en root ou pas… :(. Je suis sur Mac aussi, Yosemite 10.10.1.
Si vous trouvez la solution ça m'intéresse.
Merci

lakamark
Auteur

Comment je peut faire pour avoir les autorisations sans que je suis refaire la configuration de ma machine vagrant? j'ai aussi le système d'exploitation Yosemite 10.10.1.

Merci

Bonsoir,

Je pense que je dois pas comprendre quelque chose, vous êtes dans une machine virtuelle pour lancer cette commande ?

Pouvez vous me faire dans votre machine virtuelle vagrant :

hostname
ls /usr/local/bin

Me donner le résultat.

Cordialement

lakamark
Auteur

J'ai exécuter la commande et ça me retourne ce-ci :

Usage: hostname -v] -b] {hostname|-F file} set host name (from file)
       hostname -v] -a|-A|-d|-f|-i|-I|-s|-y] display formatted name
       hostname -v] display host name
       {yp,nis,}domainname -v] {nisdomain|-F file} set NIS domain name (from file)
       {yp,nis,}domainname -v] display NIS domain name
       dnsdomainname -v] display dns domain name
       hostname -V|--version|-h|--help print info and exit
Program name:
       {yp,nis,}domainname=hostname -y
       dnsdomainname=hostname -d
Program options:
    -a, --alias alias names
    -A, --all-fqdns all long host names (FQDNs)
    -b, --boot set default hostname if none available
    -d, --domain DNS domain name
    -f, --fqdn, --long long host name (FQDN)
    -F, --file read host name or NIS domain name from given file
    -i, --ip-address addresses for the host name
    -I, --all-ip-addresses all addresses for the host
    -s, --short short host name
    -y, --yp, --nis NIS/YP domain name
Description:
   This command can get or set the host name or the NIS domain name. You can
   also get the DNS domain or the FQDN (fully qualified domain name).
   Unless you are using bind or NIS for host lookups you can change the
   FQDN (Fully Qualified Domain Name) and the DNS domain name (which is
   part of the FQDN) in the /etc/hosts file.

Hum bizarre, fait un hostname -v mais bon quel os as tu choisi pour ta machine virtuelle vagrant (debian,ubuntu etc) ?

lakamark
Auteur

J'ai choisi débian. J'ai utilisé ce site web pour créer ma machine https://puphpet.com/

Avant de lancer tes commandes tu te connecte bien en ssh dans ta machine vagrant ?

Ce que je comprend pas c'est que sur ma debian wheezy quand je tape hostname ça ne me renvoit jamais cette aide, on dirait le man de mac os ...

lakamark
Auteur

?

Bon reprenons les choses simples, qu'est ce qui se passe quand tu utilise cette commande :

sudo $(which npm) install -g browser-sync

ou

sudo -E npm install -g browser-sync
lakamark
Auteur

J'ai pris la commande :

sudo -E npm install -g browser-sync

elle me retourne ceci

> ws@0.5.0 install /usr/local/lib/node_modules/browser-sync/node_modules/socket.io/node_modules/engine.io/node_modules/ws
> (node-gyp rebuild 2> builderror.log) || (exit 0)
make: Entering directory `/usr/local/lib/node_modules/browser-sync/node_modules/socket.io/node_modules/engine.io/node_modules/ws/build'
  CXX(target) Release/obj.target/bufferutil/src/bufferutil.o
  SOLINK_MODULE(target) Release/obj.target/bufferutil.node
  SOLINK_MODULE(target) Release/obj.target/bufferutil.node: Finished
  COPY Release/bufferutil.node
  CXX(target) Release/obj.target/validation/src/validation.o
  SOLINK_MODULE(target) Release/obj.target/validation.node
  SOLINK_MODULE(target) Release/obj.target/validation.node: Finished
  COPY Release/validation.node
make: Leaving directory `/usr/local/lib/node_modules/browser-sync/node_modules/socket.io/node_modules/engine.io/node_modules/ws/build'
> ws@0.4.31 install /usr/local/lib/node_modules/browser-sync/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws
> (node-gyp rebuild 2> builderror.log) || (exit 0)
make: Entering directory `/usr/local/lib/node_modules/browser-sync/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/build'
  CXX(target) Release/obj.target/bufferutil/src/bufferutil.o
  SOLINK_MODULE(target) Release/obj.target/bufferutil.node
  SOLINK_MODULE(target) Release/obj.target/bufferutil.node: Finished
  COPY Release/bufferutil.node
  CXX(target) Release/obj.target/validation/src/validation.o
  SOLINK_MODULE(target) Release/obj.target/validation.node
  SOLINK_MODULE(target) Release/obj.target/validation.node: Finished
  COPY Release/validation.node
make: Leaving directory `/usr/local/lib/node_modules/browser-sync/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/build'
/usr/local/bin/browser-sync -> /usr/local/lib/node_modules/browser-sync/bin/browser-sync
browser-sync@1.7.1 /usr/local/lib/node_modules/browser-sync
??? emitter-steward@0.0.1
??? opt-merger@1.1.0
??? easy-extender@2.1.0
??? opn@1.0.0
??? commander@2.5.0
??? object-path@0.6.0
??? minimist@1.1.0
??? eazy-logger@1.5.0 (opt-merger@0.2.1)
??? ua-parser-js@0.7.3
??? browser-sync-client@0.5.1
??? foxy@5.0.1 (http-proxy@1.7.0)
??? resp-modifier@1.0.0 (minimatch@1.0.0)
??? connect@3.3.3 (utils-merge@1.0.0, parseurl@1.3.0, debug@2.1.0, finalhandler@0.3.2)
??? serve-static@1.7.1 (utils-merge@1.0.0, escape-html@1.0.1, parseurl@1.3.0, send@0.10.1)
??? portscanner-plus@0.1.0 (q@1.0.1, portscanner@0.2.3)
??? serve-index@1.5.1 (parseurl@1.3.0, batch@0.5.1, debug@2.1.0, http-errors@1.2.7, accepts@1.1.3, mime-types@2.0.3)
??? tfunk@2.1.0 (chalk@0.5.1)
??? lodash@2.4.1
??? glob-watcher@0.0.7 (gaze@0.5.1)
??? dev-ip@0.1.7 (lodash@2.2.1)
??? localtunnel@1.5.0 (debug@0.7.4, optimist@0.3.4, request@2.11.4)
??? socket.io@1.2.1 (debug@0.7.4, has-binary-data@0.1.3, socket.io-adapter@0.3.1, socket.io-parser@2.2.2, engine.io@1.4.3, socket.io-client@1.2.1)

Je pense que c'est installer, mais comment je fait pour qui pointe vers mon fichier où est mon site web

$ browser-sync start --proxy "local.dev"

Ca fonctionnera pas si tu mets "local.dev" en proxy, il faut que tu mettes l'adresse local du serveur sur la VM

lakamark
Auteur

Oui sa serais plus logique :P
L'adresse local de ma VM c'est son adresse ip?

Salut quelqu'un pourrait me donner un coup de main, j'ai bien fait tout l'installation mais lorsque je lance le server et que je fais une modification dans mon css, browser-sync detect un changement au niveau de mon css mais rien ne change au niveau de mes browser.