【问题标题】:npm - not installed; illegal characters in pathnpm - 未安装;路径中的非法字符
【发布时间】:2016-10-30 22:57:36
【问题描述】:

从一个久违的同事那里继承了一个损坏的 NLog 项目...

  • VS2015更新2
  • 最新节点安装
  • 最新的 npm 更新 3.10.3
  • '.net 5.0' 项目(pre-core 1.0)

我的 npm 节点总是说“npm - 未安装”

当我右键单击时,我立即得到“路径中的非法字符”

这是我的 package.json

{
"version": "0.0.0",
"name": "asp.net",
"devDependencies": {
    "gulp": "^3.9.0",
    "gulp-bower": "^0.0.11",
    "gulp-concat": "^2.6.0",
    "gulp-install": "^0.6.0",
    "gulp-sass": "^2.1.1",
    "gulp-uglify": "^1.5.1",
    "gulp-util": "^3.0.7",
    "gulp-watch": "^4.3.5",
    "run-sequence": "^1.1.5",
    "browser-sync": "^2.10.0",
    "gulp-filter": "^3.0.1",
    "main-bower-files": "^2.9.0",
    "gulp-rename": "^1.2.2",
    "gulp-sourcemaps": "^1.6.0"
}

这是我的 project.json:

{
"webroot": "wwwroot",
"version": "1.0.0-*",
"dependencies": {
    "EntityFramework.Commands": "7.0.0-rc1-final",
    "EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final",
    "Microsoft.AspNet.Authentication.Cookies": "1.0.0-rc1-final",
    "Microsoft.AspNet.Diagnostics": "1.0.0-rc1-final",
    "Microsoft.AspNet.Diagnostics.Entity": "7.0.0-rc1-final",
    "Microsoft.AspNet.Identity.EntityFramework": "3.0.0-rc1-final",
    "Microsoft.AspNet.IISPlatformHandler": "1.0.0-rc1-final",
    "Microsoft.AspNet.Mvc": "6.0.0-rc1-final",
    "Microsoft.AspNet.Mvc.TagHelpers": "6.0.0-rc1-final",
    "Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final",
    "Microsoft.AspNet.Server.WebListener": "1.0.0-rc1-final",
    "Microsoft.AspNet.Session": "1.0.0-rc1-final",
    "Microsoft.AspNet.SignalR.Server": "3.0.0-rc1-final",
    "Microsoft.AspNet.StaticFiles": "1.0.0-rc1-final",
    "Microsoft.AspNet.Tooling.Razor": "1.0.0-rc1-final",
    "Microsoft.Extensions.Caching.Memory": "1.0.0-rc1-final",
    "Microsoft.Extensions.Configuration.Json": "1.0.0-rc1-final",
    "Microsoft.Extensions.Logging": "1.0.0-rc1-final",
    "Microsoft.Extensions.Logging.Console": "1.0.0-rc1-final",
    "Microsoft.Extensions.Logging.Debug": "1.0.0-rc1-final",
    "Microsoft.Extensions.Logging.NLog": "1.0.0-rc1-final",
    "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-rc1-final",
    "MvcWebApiCors": "0.3.0"
},
"commands": {
    "web": "Microsoft.AspNet.Server.Kestrel",
    "ef": "EntityFramework.Commands"
},
"frameworks": {
    "dnx451": {
  "dependencies": {
    "Rally.RestApi": "1.0.0-*"
  }
    }
},
"exclude": [
    "wwwroot",
    "node_modules",
    "bower_components"
],
"publishExclude": [
    "node_modules",
    "bower_components",
    "**.kproj",
    "**.user",
    "**.vspscc"
],
"scripts": {
    "postrestore": [ "npm install" ],
    "prepare": [ "gulp" ]
}

这是我的 Bower.json

{
"name": "WebApplication",
"private": true,
"dependencies": {
    "bootstrap": "^4.0.0-alpha.2",
    "signalr": "^2.2.0",
    "font-awesome": "^4.5.0",
    "moment": "^2.11.0",
    "Chart-js": "^1.0.2",
    "tether": "^1.1.1",
    "bootstrap-daterangepicker": "2.1.17",
    "handlebars": "^4.0.5",
    "chosen": "^1.4.2"
}

global.json

{
"projects": [
"src",
"wrap"
],
"sdk": {
"version": "1.0.0-rc1-update1"
}

总体问题是没有显示任何 css/样式。与我们的 iis 框中的内容相比,该网站看起来很简陋。

【问题讨论】:

  • 您的(项目)路径名中是否包含空格或破折号-
  • "项目的路径名"?..
  • 如果我删除 "gulp-watch": "^4.3.5" 和 "browser-sync": "^2.10.0" 错误就会消失,仅供参考
  • 这不回答我的问题。您的项目所在的文件夹路径中是否有空格或破折号?即您是否有像“C:\Projects\some-stuff\MyProject”或“C:\Projects with space\MyProject”这样的文件夹名称?某些命令行工具可能对此类文件夹有问题
  • 确保为npm 设置了Path 环境变量。还要确保它以 ; 结尾

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


【解决方案1】:

Found the answer...

某些包(例如 webpack)依赖于 Windows 不支持的包,这会导致 NPM 打印有关它的警告。 VS 将其解释为一般问题,并表示未安装软件包,尽管实际上应该忽略此警告。

【讨论】:

    【解决方案2】:

    尝试全局安装 npm 包时遇到同样的问题(使用 -g 标志)。 我尝试全局安装的任何 npm 包都抛出了下面给出的相同错误。

    npm ERR! code EINVAL
    npm ERR! path C:\Users\xxxxxxx'C:\Users\xxxxxxx\AppData\Roaming\npm
    npm ERR! Illegal characters in path.
    
    npm ERR! A complete log of this run can be found in:
    npm ERR!     C:\Users\xxxxxxx\AppData\Local\npm-cache\_logs\2021-12-15T10_49_39_874Z-debug.log
    

    我检查了 PATH 变量。一切都很好。

    经过网上的一些研究,尝试了以下命令

    npm bin -g
    

    这显示了一条奇怪的路径。

    C:\Users\xxxxxx'C:\Users\xxxxxx\AppData\Roaming\npm
    (not in PATH env variable)
    

    看了this post之后,我尝试设置npm config的路径前缀,成功了!

    我是这样设置的。

    npm config set prefix C:\Users\xxxxxxx\AppData\Roaming\npm
    

    您可以检查和确认相同的使用,

    npm config get prefix
    

    理想情况下,此路径已添加到我的主目录 (C:\Users\xxxxxxx) 中的“.npmrc”文件中。如果“.npmrc”文件中没有任何其他内容(例如私有 npm 注册表的访问令牌),删除该文件将解决此问题。

    只是在这里发帖,以便遇到类似问题的人可能会发现 这很有帮助,因为问题标题与此问题有关。

    【讨论】:

      猜你喜欢
      • 2023-02-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-08
      • 2019-08-30
      • 1970-01-01
      • 2012-03-05
      相关资源
      最近更新 更多