10

我是 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 和 webpack-cli 并重新安装它们。然后它就起作用了。为什么...?谁知道?我听说其他人也遇到过这个问题,虽然我从第一次开始就没有重现它。

4

3 回答 3

10

转到Tools > Options > Projects and Solutions > Web Package Management > External Web Tools 取消选择 的选项$(VSINSTALLDIR)\Web\External

在此处输入图像描述

请参阅ES6 中的 Visual Studio 任务运行程序错误Visual Studio 任务运行程序“SyntaxError: Use of const in strict mode”。

于 2018-03-28T10:35:27.720 回答
1

今天遇到了同样的问题,对于其他发现此问题的人来说,解决方案是简单地确保 node 和 npm 是最新的。更新这些(建议查看 nvm 以实现此目的)然后重新安装 webpack 和 webpack-cli 包,所有内容都已排序。

于 2018-04-21T21:17:51.793 回答
0

尝试为 ES6 系统税添加一个加载器,比如 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
            }
        }
    ]
于 2018-04-01T21:08:19.117 回答