Новая 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
            }
        }
    ]
Другие вопросы по тегам