新的Node Tools Express App项目中的Intellisense错误

时间:2018-03-28 16:58:06

标签: javascript visual-studio typescript npm ntvs

我刚刚使用“ Basic Node.js Express 4应用程序”模板创建了一个新项目,项目似乎已经出现错误:

enter image description here

这是Visual Studio中的错误吗?如何修复错误?

1 个答案:

答案 0 :(得分:2)

等待

使用此模板创建新项目时,Visual Studio在后台运行npm install以从npm注册表下载包和类型信息。在下载该类型信息之前,您可能会暂时在编辑器中看到错误。

运行npm install可能需要2分钟,具体取决于您的网络和磁盘状况。如果您还没有看到npm command completed消息,那么npm仍在运行,您需要快速喝咖啡。安装完成后,Visual Studio将自动更新Intellisense错误。

等待不起作用?

如果您稍等一下并且错误仍然存​​在,诊断问题的第一步是检查Output窗口以查看npm install的进展情况。从顶部菜单中选择View - > Output,然后在“输出”窗口中,在标有Npm的组合框中选择Show output from: Output window showing npm status

您接下来要做的事情取决于您在输出窗口中看到的内容。

再试一次

由于a bug in the interaction between npm's staging behavior, graceful-fs, and the Win32 MoveFileEx APInpm install可能会随机失败。您将在“输出窗口”中看到如下所示的错误跟踪:

npm ERR! path C:\Users\ryanca\source\repos\ExpressApp41\ExpressApp41\node_modules\@types\debug\package.json.2541088048
npm ERR! code EPERM
npm ERR! errno -4048
npm ERR! syscall rename
npm ERR! Error: EPERM: operation not permitted, rename 'C:\Users\ryanca\source\repos\ExpressApp41\ExpressApp41\node_modules\@types\debug\package.json.2541088048' -> 'C:\Users\ryanca\source\repos\ExpressApp41\ExpressApp41\node_modules\@types\debug\package.json'
npm ERR!  { Error: EPERM: operation not permitted, rename 'C:\Users\ryanca\source\repos\ExpressApp41\ExpressApp41\node_modules\@types\debug\package.json.2541088048' -> 'C:\Users\ryanca\source\repos\ExpressApp41\ExpressApp41\node_modules\@types\debug\package.json'
npm ERR!   cause: 
npm ERR!    { Error: EPERM: operation not permitted, rename 'C:\Users\ryanca\source\repos\ExpressApp41\ExpressApp41\node_modules\@types\debug\package.json.2541088048' -> 'C:\Users\ryanca\source\repos\ExpressApp41\ExpressApp41\node_modules\@types\debug\package.json'
npm ERR!      errno: -4048,
npm ERR!      code: 'EPERM',
npm ERR!      syscall: 'rename',
npm ERR!      path: 'C:\\Users\\ryanca\\source\\repos\\ExpressApp41\\ExpressApp41\\node_modules\\@types\\debug\\package.json.2541088048',
npm ERR!      dest: 'C:\\Users\\ryanca\\source\\repos\\ExpressApp41\\ExpressApp41\\node_modules\\@types\\debug\\package.json' },
npm ERR!   stack: 'Error: EPERM: operation not permitted, rename \'C:\\Users\\ryanca\\source\\repos\\ExpressApp41\\ExpressApp41\\node_modules\\@types\\debug\\package.json.2541088048\' -> \'C:\\Users\\ryanca\\source\\repos\\ExpressApp41\\ExpressApp41\\node_modules\\@types\\debug\\package.json\'',
npm ERR!   errno: -4048,
npm ERR!   code: 'EPERM',
npm ERR!   syscall: 'rename',
npm ERR!   path: 'C:\\Users\\ryanca\\source\\repos\\ExpressApp41\\ExpressApp41\\node_modules\\@types\\debug\\package.json.2541088048',
npm ERR!   dest: 'C:\\Users\\ryanca\\source\\repos\\ExpressApp41\\ExpressApp41\\node_modules\\@types\\debug\\package.json',
npm ERR!   parent: 'express-app41' }
npm ERR! 
npm ERR! Please try running this command again as root/Administrator.
npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\ryanca\AppData\Roaming\npm-cache\_logs\2018-03-28T16_48_13_111Z-debug.log
====npm command completed with exit code -4048====

请勿按照npm的建议以管理员身份重新运行该命令;这只会让事情变得更糟。从常规命令行运行npm install,或者等效地从解决方案资源管理器中的Install Missing npm Packages节点中选择npmImage of the context menu

请注意,这将运行npm install可能再次失败(但可能不会)。

关闭解决方案

一小部分用户反复看到npm install失败。在极不可能的事件中,这会再次失败,您可以尝试关闭解决方案,从命令行运行npm install,然后重新打开解决方案,但通常这不是必需的。如果即使Visual Studio未运行npm install失败,那么您可能还有另一个问题,例如损坏的npm缓存,磁盘错误或此答案未涵盖的其他一些npm错误。

考虑降级或升级npm

EPERM版本5中引入了导致npm错误的错误,因此如果这对您造成严重问题,您可以考虑降级到任何4.x.x版本。在撰写本文时,错误尚未得到修复,但希望将来会发布带有graceful-fs错误修复的新版npm,您只需升级即可。