Новая npm установка webpack.js выдает ошибку Block-scope
Я новичок в Webpack, Visual Studio и Task Runner, но это то, что мне сказали установить / использовать на работе, поэтому я пытаюсь понять, как заставить все это работать. Я просто использовал NPM для глобальной установки новой копии webpack и webpack-cli. Я установил подключаемый модуль Task Runner в Visual Studio и использовал опцию Run > Development, как указано. Таинственным образом моя машина - единственная, на которой появляется следующая ошибка, и никто не знает, почему:
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.
Я использую новейшую версию NodeJS и NPM. Любые идеи, почему немодифицированная загрузка веб-пакета приводит к ошибкам в области блока?
Редактировать:
Я вижу, что этому вопросу было уделено некоторое внимание, поэтому я подумал, что должен упомянуть, что проблема была решена. К сожалению, было решено полностью удалить webpack и webpack-cli и переустановить их. Тогда это просто сработало. Зачем...? Кто знает? Я слышал, что у других тоже была эта проблема, хотя я не воспроизводил ее с первого раза.
3 ответа
Идти к Tools > Options > Projects and Solutions > Web Package Management > External Web Tools
УДАЛИТЕ опцию для $(VSINSTALLDIR)\Web\External
,
Обратитесь к Visual Runner Task Run Error с ES6 и Visual Studio Task Runner "SyntaxError: Использование const в строгом режиме".
Если бы сегодня кто-нибудь обнаружил такую же проблему, то было просто убедиться, что узел и npm обновлены. Обновление тех (рекомендую взглянуть на nvm для достижения этой цели), затем переустановить пакеты webpack и webpack-cli, и все было отсортировано.
Попробуйте добавить загрузчик для ES6 systax, такой как babel и его пресеты. Вы можете сделать это, выполнив: npm install
после добавления этой зависимости внутри package.json
(мои зависимости не обновляются, вы можете обновить их без проблем):
"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",
}
Кроме того, вы должны добавить это в свой webpack.config.js
> loaders
(установить новый загрузчик - 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
}
}
]