【问题标题】:Task Runner Explorer ASP.NET - Block-scoped declarations not yet supported outside strict modeTask Runner Explorer ASP.NET - 在严格模式之外尚不支持块范围的声明
【发布时间】:2019-12-13 16:32:24
【问题描述】:

我已经收到这个错误好几天了,我不知道如何解决它。

当我在 Node Task Runner Explorer 中运行“dev”包时,会出现此错误。

好像跟不同版本的node和webpack相处不融洽有关。错误消息和我的 packages.json 文件如下,以及我正在处理的文章的链接。

setting-up-a-react-environment-for-aspnet-mvc-44la

错误信息

C:\DevFolder\MyApplication> cmd.exe /c npm run dev --color=always

asp.net@1.0.0 dev C:\DevFolder\MyApplication
webpack --mode development --watch C:\DevFolder\MyApplication\node_modules\webpack\bin\webpack.js:90    let
 notify =   ^^^ 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:405:10)
     at Module.load (module.js:344:32)
     at Function.Module._load (module.js:301:12)
     at Function.Module.runMain (module.js:430:10)
     at startup (node.js:141:18)
     at node.js:980:3 npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! asp.net@1.0.0 dev: `webpack --mode development --watch` npm ERR!
 Exit status 1 npm ERR!  npm ERR! Failed at the asp.net@1.0.0 dev
 script. npm ERR! This is probably not a problem with npm. There is
 likely additional logging output above.

package.json

  {
    "version": "1.0.0",
    "name": "asp.net",
    "private": true,
    "scripts": {
      "build": "webpack",
      "dev": "webpack --mode development --watch"
    },
    "devDependencies": {
      "@babel/cli": "^7.7.5",
      "@babel/core": "^7.7.5",
      "@babel/plugin-proposal-class-properties": "^7.7.4",
      "@babel/preset-env": "^7.7.6",
      "@babel/preset-react": "^7.7.4",
      "babel-loader": "^8.0.6",
      "browser-sync": "^2.26.7",
      "browser-sync-webpack-plugin": "^2.2.2",
      "webpack": "^4.41.2",
      "webpack-cli": "^3.3.10",
      "webpack-notifier": "^1.8.0"
    },
    "dependencies": {
      "react": "^16.12.0",
      "react-dom": "^16.12.0",
      "npm": "6.12.1",
      "node" : "5.3.0"
    }
  }

Webpack 配置

"use strict";

var path = require("path");
var WebpackNotifierPlugin = require("webpack-notifier");
var BrowserSyncPlugin = require("browser-sync-webpack-plugin");

module.exports = {
    entry: "./Scripts/ApplicationReact/ApplicationReact.js",
    output: {
        path: path.resolve(__dirname, "./Scripts/"),
        filename: "bundle.js"
    },
    module: {
        rules: [
            {
                test: /\.js$/,
                exclude: /node_modules/,
                use: {
                    loader: "babel-loader"
                }
            }
        ]
    },
    devtool: "inline-source-map",
    plugins: [new WebpackNotifierPlugin(), new BrowserSyncPlugin()]
};

【问题讨论】:

  • 你能显示你的 webpack 配置文件吗
  • 您好托尼,我已经更新了这个问题。如果您还需要什么,请告诉我
  • 尝试删除"use strict";
  • 我尝试去掉“use strict”,但仍然抛出同样的错误。我也只是尝试制造很多语法错误并损坏文件,但它没有任何效果,我认为节点任务运行器根本没有拾取配置文件。该文件名为“webpack.config.js”
  • 您介意在 github 上分享您的代码吗?不运行代码我真的很难调试

标签: asp.net node.js visual-studio webpack


【解决方案1】:

总结

不要安装 Node.js nuget 包,它会破坏您的项目,并且在您删除它后它仍然会损坏。只需让节点的常规安装完成工作即可。

详情

在任何其他目录中,如果我在命令行中执行“node -v”,它将返回版本 12.13.1

如果我在我的项目文件夹中执行“node -v”,它将返回 5.3.0

当我删除 Node.js nuget 包时,我认为它会默认为系统版本,但它只是说“找不到指定的文件或命令”(或类似的内容)。

出于本练习的目的,我已将整个软件复制到另一个文件夹。我刚刚分支到另一个文件夹,这次“node -v”带着 12.13.1 回来了

我继续练习,没有出现错误。一旦你进入这种状态,我不知道如何解决它。

更好的答案?

这不是一个很好的答案,我不会将其标记为答案。如果有人可以为这里发生的事情提供一个合理的解释,以及一种从 nuget 节点 lurgy 中治愈您的项目的方法,我会将其标记为答案。

【讨论】:

    猜你喜欢
    • 2017-06-17
    • 2019-09-14
    • 2017-08-16
    • 1970-01-01
    • 1970-01-01
    • 2018-04-02
    • 2023-04-07
    • 2016-01-05
    相关资源
    最近更新 更多