web-dev-qa-db-fra.com

SyntaxError: Déclarations relatives aux blocs (let, const, fonction, classe) non encore prises en charge en dehors du mode strict lors de l'installation du package de noeud SASS

Essayer d'installer LESS/SASS. Et obtenir cette erreur après avoir installé node.js sous Linux 16.04 . Installé le compilateur LESS et le npm de mise à jour pour procéder à l’installation de SASS où j’ai échoué et où je suis maintenant bloqué.

Suivi ces étapes:

  1. Sudo apt-get install node.js
  2. Sudo apt-get update 
  3. Sudo apt-get upgrade
  4. Sudo apt-get install
  5. npm - gestionnaire de paquets de noeuds
  6. Sudo npm install -g less
  7. Sudo npm installe node-sass -g (ne fonctionne pas)
  8. essayé: Sudo gem installer sass

Ensuite, cette erreur s'est produite:

$Sudo npm update npm -g 
/usr/local/lib/node_modules/npm/bin/npm-cli.js:82
      let notifier = require('update-notifier')({pkg})
      ^^^

Message d'erreur

SyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside strict mode
at exports.runInThisContext (vm.js:53:16)
at Module._compile (module.js:374:25)
at Object.Module._extensions..js (module.js:417:10)
at Module.load (module.js:344:32)
at Function.Module._load (module.js:301:12)
at Function.Module.runMain (module.js:442:10)
at startup (node.js:136:18)
at node.js:966:3

Depuis lors, je ne peux pratiquement plus rien faire. Pas même exécuter une commande simple comme npm -v. Je vais avoir le même problème encore et encore.

Pourrais-tu m'aider s'il te plaît?

3
user3550117

Il s'agit d'un bug signalé sur npm, dont les versions supérieures à 6.0.0 ne prennent pas en charge les versions de nœud sous Node 6.0.0 . Si vous exécutez node -v on soupçonne fort que votre version de nœud est antérieure à Node 6.0.0

J'ai rencontré les mêmes difficultés en mettant à niveau innocemment npm de la version 2.14.20 vers la dernière version stable, avec NodeJS sous v4.4.0 . Le problème est que vous ne pouvez pas simplement mettre à niveau Node car, comme vous l'avez mentionné, npm est totalement bloqué.

Donc, je ai enlevé le noeud en utilisant la méthode décrite dans cette question :

J'ai localisé le répertoire dans lequel les composants de nœud étaient stockés:

which node #this returned /path/bin/node 

Puis lancez cd /path

Et finalement courir

rm -r bin/node bin/node-waf include/node lib/node lib/pkgconfig/nodejs.pc share/man/man1/node.1

après cela, node -v et npm -v ne renverraient rien.

Donc, je ai téléchargé le paquet du noeud pour Linux: noeud-v8.11.3-linux-x64.tar.gz , je l'ai stocké dans/tmp et je l'ai décompressé:

tar --strip-components 1 -xzf /tmp/node-v8.11.3-linux-x64.tar.gz

Exécutez à nouveau npm -v et node -v pour vérifier la version. Ils devraient être tous les deux améliorés.

J'espère que cela t'aides. :)

2
Pikuni

let et const étant la syntaxe ECMAScript2015, vous pouvez essayer de mettre à niveau votre node.js vers une version plus récente (ou la plus récente) prenant en charge la syntaxe es6. Le message d'erreur dit "pas encore pris en charge en dehors du mode strict".

0
TCsss

Cela ressemble à un coup de pied pour tout le paquet et sa réinstallation, suivi par les paquets précédents "autoremove" résolus. Merci beaucoup les gars!

0
user3550117