web-dev-qa-db-fra.com

L'installation récente de webpack.js par npm génère une erreur Block-scope

Webpack, Visual Studio et Task Runner sont nouveaux pour moi, mais c'est ce que l'on m'a dit d'installer/d'utiliser au travail. Je ne parviens donc pas à trouver comment le faire fonctionner. Je viens d'utiliser NPM pour installer globalement une nouvelle copie de webpack et webpack-cli. J'ai installé le plugin Task Runner dans Visual Studio et utilisé l'option Exécuter> Développement fournie. Mystérieusement, la mienne est la seule machine à avoir l'erreur suivante et personne ne sait pourquoi:

C:\Users\[me]\AppData\Roaming\npm\node_modules\webpack\bin\webpack.js:3
let webpackCliInstalled = false;
^^^
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:373:25)
    at Object.Module._extensions..js (module.js:404:10)
    at Module.load (module.js:343:32)
    at Function.Module._load (module.js:300:12)
    at Function.Module.runMain (module.js:429:10)
    at startup (node.js:139:18)
    at node.js:999:3
Process terminated with code 1.

J'utilise la dernière version de NodeJS et NPM. Des idées sur la raison pour laquelle un téléchargement non modifié de WebPack produirait des erreurs de type "block-scope"?

Modifier:

Je vois que cette question a attiré l'attention, alors j'ai pensé que je devrais mentionner que le problème était résolu. Malheureusement, la solution consistait à désinstaller complètement webpack et webpack-cli et à les réinstaller. Ensuite, cela a juste fonctionné. Pourquoi...? Qui sait? J'ai entendu dire que d'autres personnes avaient également ce problème, bien que je ne l'aie pas reproduit depuis la première fois.

10
Steverino

Allez à Tools > Options > Projects and Solutions > Web Package Management > External Web Tools DÉSACTIVEZ l'option pour $(VSINSTALLDIR)\Web\External.

 enter image description here

Reportez-vous à Erreur de Visual Studio Task Runner avec ES6 et to Tâche d'exécution de Visual Studio "SyntaxError: utilisation de const en mode strict."

9

Si le même problème se posait aujourd’hui, pour quiconque le trouverait, la solution consistait simplement à s’assurer que les nœuds et npm étaient à jour. La mise à jour de ceux-ci (recommande de regarder nvm pour y parvenir), puis la réinstallation des paquetages webpack et webpack-cli et tout a été trié.

1
DannyT

Essayez d’ajouter un chargeur pour ES6 systax comme Babel et ses presets. Vous pouvez faire cela en: npm install après avoir ajouté ces dépendances dans package.json (mes dépendances ne sont pas mises à jour, vous pouvez les mettre à jour sans problèmes): 

"devDependencies": {
"babel-core": "^6.24.0",
"babel-loader": "^7.0.0",
"babel-plugin-react-html-attrs": "^2.0.0",
"babel-plugin-transform-class-properties": "^6.23.0",
"babel-plugin-transform-decorators-legacy": "^1.3.4",
"babel-preset-es2015": "^6.24.0",
"babel-preset-react": "^6.23.0",
"babel-preset-stage-0": "^6.22.0",
}

De plus, vous devez ajouter ceci dans votre webpack.config.js> loaders (pour définir le nouveau chargeur - babel-loader -): 

loaders: [
        {
            test: /\.(js|jsx)$/,
            loader: 'babel-loader',
            query: {
                presets: [
                    'es2015',
                    'react',
                    'stage-0'
                ],
                plugins: [
                    'react-html-attrs',
                    'transform-decorators-legacy',
                    'transform-class-properties'
                ],
                compact: true
            }
        }
    ]
0
JuMoGar