【问题标题】:Dependencies not installed in Visual StudioVisual Studio 中未安装依赖项
【发布时间】:2016-06-21 16:27:41
【问题描述】:

我目前正在将我的 ASP.Net RC1 升级到 ASP.Net Core RC2。 Visual Studio 中的解决方案资源管理器使用子文件夹“npm - 未安装”向我发出“依赖项 - 未安装”的警告。

但是,似乎确实安装了依赖项 - 我在项目目录中运行了“npm install”,它运行良好,没有任何错误,只是一些警告。它将依赖文件夹添加到一个名为 node-modules 的父文件夹中,我可以在 Windows 资源管理器中清楚地看到它。 node-modules 文件夹包含 angular2、bootstrap、copy-webpack-plugin 等文件夹。

有谁知道为什么 Visual Studio 告诉我他们没有安装?我还尝试从包管理器控制台运行 npm install 并在这些文件夹上执行“右键单击 - > 还原包”,在解决方案资源管理器中给我警告。

这是我的 package.json 文件:

{
  "name": "EmptyWebApp",
  "version": "0.0.0",
  "dependencies": {
    "angular2": "2.0.0-beta.13",
    "bootstrap": "^3.3.5",
    "es6-promise": "^3.0.2",
    "es6-shim": "^0.35.0",
    "reflect-metadata": "0.1.2",
    "jquery": "^2.1.4",
    "less": "^2.5.3",
    "lodash": "^3.10.1",
    "rxjs": "5.0.0-beta.2",
    "systemjs": "0.19.22",
    "ts-loader": "^0.7.2",
    "zone.js": "0.6.6"
  },
  "devDependencies": {
    "del": "^2.0.2",
    "event-stream": "^3.3.1",
    "copy-webpack-plugin": "^0.3.3",
    "css-loader": "^0.23.0",
    "exports-loader": "0.6.2",
    "expose-loader": "^0.7.1",
    "file-loader": "^0.8.4",
    "gulp": "^3.9.0",
    "html-webpack-plugin": "^1.7.0",
    "http-server": "^0.8.5",
    "imports-loader": "^0.6.4",
    "istanbul-instrumenter-loader": "^0.1.3",
    "json-loader": "^0.5.3",
    "nodemon":  "^1.8.1",
    "phantomjs": "^1.9.18",
    "phantomjs-polyfill": "0.0.1",
    "protractor": "^3.0.0",
    "raw-loader": "0.5.1",
    "reflect-metadata": "0.1.2",
    "remap-istanbul": "^0.5.1",
    "rimraf": "^2.4.4",
    "style-loader": "^0.13.0",
    "ts-helper": "0.0.1",
    "ts-loader": "^0.7.2",
    "tsconfig-lint": "^0.4.3",
    "tslint": "^3.2.0",
    "tslint-loader": "^2.1.0",
    "typedoc": "^0.3.12",
    "typescript": "1.8.9",
    "typings": "^0.6.1",
    "url-loader": "^0.5.6",
    "webpack": "^1.12.9",
    "webpack-dev-server": "^1.12.1",
    "webpack-md5-hash": "0.0.4"    
  },
  "scripts": {
    "tsc": "tsc -p . -w",
    "start": "nodemon --ignore htm,html --ext cs,js --exec \"dnx web\" -V",
    "static": "nodemon --watch ./client --ext html,css --exec \"gulp deploy-client\" -V",
    "pre-build": "gulp deploy-client",
    "webpack": "webpack",
    "webpack-watch": "webpack --watch",
    "clean": "gulp cleanwww",
    "build": "npm run pre-build && npm run webpack",
    "dnx": "dnx web"
  }
}

【问题讨论】:

    标签: asp.net node.js visual-studio visual-studio-2015 npm


    【解决方案1】:

    在使用 Empty ASP.NET Core Template 创建 ASP.NET Core Web Application (.NET Framework 4.5.2) 时,这仍然是 Visual Studio Community 2015 Update 3 版本中的一个问题。在使用 ASP.NET Core Web 应用程序模板创建项目时,它似乎运行正常。

    正如操作所提到的,由于安装了依赖项,因此该消息具有误导性。似乎只是 Visual Studio 误报了未安装 npm 和依赖项。临时修复是覆盖 Visual Studio 查找 node.js 的位置,这会删除 Visual Studio 中的 not installed 消息。

    在 Visual Studio 中,转到 Tools > Options > Projects and Solutions > External Web Tools 并添加安装 node.js 的路径。默认情况下位于C:\Program Files\nodejs\C:\Program Files (x86)\nodejs\ 将此新行移动到顶部或至少在 $(VSINSTALLDIR)\Web\External 行之上。

    恢复您的软件包,错误消息应该会消失。

    【讨论】:

    • 尝试了这两个展示位置,但都对我有用,恐怕......有什么想法吗?
    • @TheBeardedLlama 您使用的是什么版本的节点?您是否尝试过从命令行运行 npm install ?不过真的不确定。
    • 一切都是最新版本(节点具体是v6);它似乎确实与一个已知的 asp.net 工具错误有关......这仍然没有修复:(
    • 这对我有用。我的安装在 x86 文件夹中。
    【解决方案2】:

    我认为这是在 asp github 中报告的 RC2 的已知问题

    https://github.com/aspnet/Tooling/issues/479

    我认为该功能应该可以工作,但消息是错误的,所以 可能我们需要等到他们解决问题。

    【讨论】:

    • 我有同样的问题,使用 CORE 1.0 RTM 和 VS 2015 Update 3。
    • 这已经过时了——下面大卫格拉斯提供的答案是正确的答案。
    • 不正确的@cyclical,它仍然是 github 问题在 Visual Studio 2015 Update 3 和 Core 1.0.1 下的描述方式;主要问题是这是一个工具问题,需要 MS 或 npm 的制造商(或两者)来解决。
    【解决方案3】:

    这似乎是由于 NPM 会生成有关无法安装的组件的警告,例如,如果您在 Windows 上,则为 OSX 组件。 VS 将此解释为失败,而实际上并非如此。 More details here.

    【讨论】:

    • 所有 3 个答案都是正确的,并且有助于获得最终解决方案:Krzysztof、Randy 和 @David。 VS 工具中有多个问题需要解决,这些问题将在以后的版本中修复,以及在不同的环境中(Windows 与非 Windows)。我不得不使用每个答案的一部分来解决这个问题。如果有帮助,我可以发布一个单独的答案,其中包含我必须一起做的所有事情。
    • 解决方法:转到 node_modules 文件夹并删除那些 Visual Studio 标记为未安装的 npm 包的文件夹。关闭VS。在控制台中运行 npm install。再次打开VS。软件包现在显示为已安装。
    【解决方案4】:

    我遇到了同样的问题,按照当前投票最高的答案,将C:\Program Files\Nodejs 添加到我的外部网络工具路径没有做任何事情。即使改变路径的顺序也无济于事。

    >npm - v
    4.2.0
    >node - v
    v6.10.0
    

    从技术上讲,您可以在 Visual Studio 中扩展您的依赖关系树以最终找到问题,但是,只需运行 npm list 并找到问题子项会更容易。

    因此,由于fsevents 是罪魁祸首,并且它是一个可选依赖项(在 Windows 架构上使用 Visual Studio 运行节点时不使用它),我找到了具有 fsevents 作为可选依赖项的模块。

    对我来说,它是 ckokidar 模块,但它位于两个地方。

    MYPROJECT\node_modules\chokidar

    还有在

    MYPROJECT\node_modules\browser-sync\node_modules\chokidar

    我怀疑如果您将 gulp-watch 作为依赖项,它也可能存在。

    所以我对这些文件夹中的每一个都打开了project.json 文件并删除了其中的任何 fsevents 轨迹。

    "dependencies": {
        ....
        "async-each": "^1.0.0", <-- also remember to remove the trailing ',' comma for the end
        "fsevents": "^1.0.0" <-- remove this
    }
    

    "keywords": [
        ...
        "file",       <-- remove comma
        "fsevents"    <-- remove
    ],
    

    并彻底删除它

    "optionalDependencies": {
        "fsevents": "^1.0.0"
    },
    

    不要在任何文件中留下任何尾随逗号,否则您将收到来自 npm 的错误。

    最后,在 Visual Studio 中右键单击 Dependencies 并运行 Restore Packages。你现在应该没有警告了!享受吧。

    【讨论】:

    • 这是最好的解决方案。完美运行。谢谢。
    【解决方案5】:

    我从 package.json 文件中删除了每个项目,直到错误不再出现。在我的情况下,错误是由

    引起的

        “grunt-ts”:“5.5.1”

    【讨论】:

      【解决方案6】:

      我的问题是阻止所有其他包加载的包之一,查看所有包是否工作的最佳方法是启动命令行界面“CMD”并导航到您的项目 -> 键入:

      npm install

      您会看到您的所有数据包是否都顺利通过了安装。

      我遇到问题的包

      Webpack "Webpack": "^ 1:12:14"

      我必须用Package Installer tool 卸载它。 只需右键单击并卸载软件包。 NodeJS 依赖错误立即消失。

      通过以下方式从 CLI 重新安装:

      npm 安装包名

      希望有所帮助:-)

      【讨论】:

        【解决方案7】:

        项目类型:ASP.NET Core (.NET)

        如果您的脚本依赖项安装失败,也会发生这种情况。 VS 输出窗口将显示相应的错误。

        在我的例子中,这是 jqueryui-amd:

        远程:未找到存储库。致命:未找到存储库“https://github.com/jrburke/jqueryui-amd.git/

        删除失败的依赖并右键单击解决方案基本路径中的Dependencies“文件夹”并选择

        Restore packages
        

        【讨论】:

          【解决方案8】:

          只需将 node-modules 文件夹从 nodejs 文件夹复制并粘贴到您的 Visual Studio、项目根文件夹,然后右键单击并恢复 VS 中的包。这样就行了!

          【讨论】:

            【解决方案9】:

            我听从了 David Glass 的建议,但看起来我仍然遇到了问题。我更新了我的 package.json 文件,以便 devDependencies 与依赖项匹配,然后警告消失了。

            【讨论】:

              【解决方案10】:

              打开 package.json 并开始一一删除包,直到警告消失。

              从 package.json 中删除 "webpack": "^1.12.14", 后,我不再收到警告

              【讨论】:

              • 谢谢你,这对我有用,你能告诉我这实际上是做什么的吗?
              • 我不能只删除这些包,我需要它们。
              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2019-03-09
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2015-05-10
              • 2015-01-24
              相关资源
              最近更新 更多