当前位置: 首页 > 知识库问答 >
问题:

Visual Studio任务运行器资源管理器-引用错误:未定义原语

阙弘博
2023-03-14

所以我升级到了VisualStudio16.6。3.当我转到Task Runner Explorer时,它不会加载我的gulp文件,在Task Runner输出窗口中,我可以看到。。。

Failed to run "E:\Projects\...\Gulpfile.js"...
cmd.exe /c gulp --tasks-simple
fs.js:35
} = primordials;
    ^
ReferenceError: primordials is not defined
    at fs.js:35:5
    at req_ (E:\Projects\...\node_modules\natives\index.js:143:24)
    at Object.req [as require] (E:\Projects\...\node_modules\natives\index.js:55:10)
    at Object.<anonymous> (E:\Projects\...\node_modules\graceful-fs\fs.js:1:37)
    at Module._compile (internal/modules/cjs/loader.js:1158:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1178:10)
    at Module.load (internal/modules/cjs/loader.js:1002:32)
    at Function.Module._load (internal/modules/cjs/loader.js:901:14)
    at Module.require (internal/modules/cjs/loader.js:1044:19)
    at require (internal/modules/cjs/helpers.js:77:18)

然后我用谷歌搜索发现这是由于node 12和gulp 3之间不兼容,并建议升级到版本4。所以我更新了我的包。json文件,并从“gulp”:“3.9.1”更改为“gulp”:“4.0.2”。当我转到任务资源管理器时,我在任务运行器输出窗口中看到以下内容。。。

Failed to run "E:\Projects\...\Gulpfile.js"...
cmd.exe /c gulp --tasks-simple
AssertionError [ERR_ASSERTION]: Task function must be specified
    at Gulp.set [as _setTask] (E:\Projects\...\node_modules\undertaker\lib\set-task.js:10:3)
    at Gulp.task (E:\Projects\...\node_modules\undertaker\lib\task.js:13:8)
    at Object.<anonymous> (E:\Projects\...\gulpfile.js:86:6)
    at Module._compile (internal/modules/cjs/loader.js:1158:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1178:10)
    at Module.load (internal/modules/cjs/loader.js:1002:32)
    at Function.Module._load (internal/modules/cjs/loader.js:901:14)
    at Module.require (internal/modules/cjs/loader.js:1044:19)
    at require (internal/modules/cjs/helpers.js:77:18)
    at requireOrImport (E:\Projects\...\node_modules\gulp\node_modules\gulp-cli\lib\shared\require-or-import.js:19:11) {
  generatedMessage: false,
  code: 'ERR_ASSERTION',
  actual: false,
  expected: true,
  operator: '=='

我用谷歌搜索了一下,建议将gulp降级到第3版。。。我只想打开TaskRunner Explorer,而不是花4个小时来解决依赖性问题。

另外,从VisualStudio包管理器控制台在VisualStudio内运行“npm安装”(提升或不提升)似乎会导致一系列权限错误。我只能从提升的powershell窗口成功运行npm安装。

有人有解决这些问题的办法吗?

包裹json如下所示。。。

{
  "version": "1.0.0",
  "name": "asp.net",
  "private": true,
  "devDependencies": {
    "del": "4.1.1",
    "gulp": "3.9.1",
    "gulp-concat": "^2.6.1",
    "gulp-config": "0.3.0",
    "gulp-cssmin": "^0.2.0",
    "gulp-csso": "1.1.0",
    "gulp-htmlmin": "5.0.1",
    "gulp-imagemin": "2.4.0",
    "gulp-less": "4.0.1",
    "gulp-plumber": "1.2.1",
    "gulp-uglify": "3.0.2",
    "gulp.spritesmith": "^6.10.0",
    "merge-stream": "2.0.0",
    "vinyl-buffer": "1.0.1"
  }
}

编辑:试图从节点12.6.2升级到12.18.2,但没有成功。

编辑:尝试从节点12.6升级。2至14.5。没有成功。

共有2个答案

祁烈
2023-03-14

我找到的解决方案是降级到nodejsv11。15.0和使用大口3.9。1.

如果有人有更好的选择,我很想听听。

郎弘壮
2023-03-14

我找到了一个解决方案,不需要降级节点或吞咽,信用。

创建一个名为npm-shrinkwrap.json的文件,级别与您的package.json相同,并用以下内容填充该文件:

{
    "dependencies": {
        "graceful-fs": {
            "version": "4.2.2"
       }
    }
}

现在删除node_modules文件夹,并在同一文件夹中运行npm安装,您现在应该可以了。(

 类似资料:
  • 我目前正在开发一个解决方案,该解决方案目前有32个UnitTests。我一直在和resharper测试跑步者一起工作--它工作得很好。所有测试都在运行,所有测试都显示了正确的测试结果。 但是,在使用Visual Studio测试资源管理器时,测试不会运行。 Test Explorer将显示所有单元测试,但是一旦单击“Run all”,所有测试都将变灰,并且不显示测试运行的结果: 所有测试类都是公共

  • 团队 我的Ci Pipeline Azure失败,发现下面的错误。我已经尝试了如何修复引用错误的解决方案:原语没有在节点中定义,但没有运气 错误如下:

  • 资源管理器 是我们用来访问和管理项目资源的工作区域。在开始制作游戏时,添加资源到这里通常是必须的步骤。您可以使用 HelloWorld 模板新建一个项目,就可以看到 资源管理器 中包含了一些基本资源类型。 界面介绍 资源管理器 将项目资源文件夹中的内容以树状结构展示出来,注意只有放在项目文件夹的 assets 目录下的资源才会显示在这里。关于项目文件夹结构说明请阅读 项目结构 一节。下面我们介绍各

  • 资源管理器 面板是我们用来访问和管理项目资源的重要工具。 在开始制作游戏时,导入资源 通常是必须的步骤。您可以在新建项目时使用模板项目,新建步骤完成后会自动打开项目,默认布局中包含了 资源管理器 面板,里面有两个资源库,简称 DB,assets 和 internal, internal 属于默认的内置资源,内置资源可以复制出来,但不能直接修改。 面板操作预览 面板介绍 资源管理器 面板上主要有 头

  • 当我尝试启动(python3 manage.py runserver)我的django2时。我的电脑上有0个webapp我收到以下消息: 正在执行系统检查。。。 在0x7fc889c36510处由包装器启动的线程中未处理的异常 文件“/home/neo/.local/lib/python3.5/site packages/django/url/resolvers.py”,第538行,在url_pa

  • 我试图完全清理资源组在Azure。 删除资源组不是选项(访问权限:参与者,而不是所有者) 做到这一点的最优雅和明显的方法(也在一些文章中描述)是使用“空”部署模板执行完整的部署: 删除SQL Server开始“...”接受“...”失败“...”开始“...”接受“...”失败“... 你想到主意了。 其他时候效果很好。 您将得到数据库删除的无限循环“开始..接受..失败..开始..接受..失败.