通过 nodejs 安装 Express 时出错

Posted

技术标签:

【中文标题】通过 nodejs 安装 Express 时出错【英文标题】:Error installing Express via nodejs 【发布时间】:2018-06-11 20:28:52 【问题描述】:

我正在尝试通过 nodeJS 安装 express,我得到的错误告诉我应该重命名我的目录。我已经在我的项目文件夹中运行了 npm init,所以我假设设置是正确的。我使用的确切命令是:npm install express --save,npm-debug.log 列出了一堆以“silly”开头的语句,但最重要的语句(imo)如下:

3242 verbose stack Error: EPERM: operation not permitted, rename 'C:\Users\Leungi5368\Documents\CS Education\Side Projects\TimeManagerElectron\TimeManagerElectron\node_modules\.staging\depd-c51a5acf' -> 'C:\Users\Leungi5368\Documents\CS Education\Side Projects\TimeManagerElectron\TimeManagerElectron\node_modules\depd'
3242 verbose stack     at destStatted (C:\Program Files\nodejs\node_modules\npm\lib\install\action\finalize.js:25:7)
3242 verbose stack     at C:\Program Files\nodejs\node_modules\npm\node_modules\graceful-fs\polyfills.js:264:29
3242 verbose stack     at FSReqWrap.oncomplete (fs.js:123:15)
3242 verbose stack
3242 verbose stack Error: EPERM: operation not permitted, rename 'C:\Users\Leungi5368\Documents\CS Education\Side Projects\TimeManagerElectron\TimeManagerElectron\node_modules\.staging\depd-c51a5acf' -> 'C:\Users\Leungi5368\Documents\CS Education\Side Projects\TimeManagerElectron\TimeManagerElectron\node_modules\depd'
3242 verbose stack     at Error (native)
3243 verbose cwd C:\Users\Leungi5368\Documents\CS Education\Side Projects\TimeManagerElectron\TimeManagerElectron
3244 error Windows_NT 10.0.16299
3245 error argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "express" "--save"
3246 error node v6.11.2
3247 error npm  v3.10.10
3248 error path C:\Users\Leungi5368\Documents\CS Education\Side Projects\TimeManagerElectron\TimeManagerElectron\node_modules\.staging\depd-c51a5acf
3249 error code EPERM
3250 error errno -4048
3251 error syscall rename
3252 error Error: EPERM: operation not permitted, rename 'C:\Users\Leungi5368\Documents\CS Education\Side Projects\TimeManagerElectron\TimeManagerElectron\node_modules\.staging\depd-c51a5acf' -> 'C:\Users\Leungi5368\Documents\CS Education\Side Projects\TimeManagerElectron\TimeManagerElectron\node_modules\depd'
3252 error     at destStatted (C:\Program Files\nodejs\node_modules\npm\lib\install\action\finalize.js:25:7)
3252 error     at C:\Program Files\nodejs\node_modules\npm\node_modules\graceful-fs\polyfills.js:264:29
3252 error     at FSReqWrap.oncomplete (fs.js:123:15)
3252 error
3252 error Error: EPERM: operation not permitted, rename 'C:\Users\Leungi5368\Documents\CS Education\Side Projects\TimeManagerElectron\TimeManagerElectron\node_modules\.staging\depd-c51a5acf' -> 'C:\Users\Leungi5368\Documents\CS Education\Side Projects\TimeManagerElectron\TimeManagerElectron\node_modules\depd'
3252 error     at Error (native)
3252 error   Error: EPERM: operation not permitted, rename 'C:\Users\Leungi5368\Documents\CS Education\Side Projects\TimeManagerElectron\TimeManagerElectron\node_modules\.staging\depd-c51a5acf' -> 'C:\Users\Leungi5368\Documents\CS Education\Side Projects\TimeManagerElectron\TimeManagerElectron\node_modules\depd'
3252 error     at destStatted (C:\Program Files\nodejs\node_modules\npm\lib\install\action\finalize.js:25:7)
3252 error     at C:\Program Files\nodejs\node_modules\npm\node_modules\graceful-fs\polyfills.js:264:29
3252 error     at FSReqWrap.oncomplete (fs.js:123:15)
3252 error
3252 error Error: EPERM: operation not permitted, rename 'C:\Users\Leungi5368\Documents\CS Education\Side Projects\TimeManagerElectron\TimeManagerElectron\node_modules\.staging\depd-c51a5acf' -> 'C:\Users\Leungi5368\Documents\CS Education\Side Projects\TimeManagerElectron\TimeManagerElectron\node_modules\depd'
3252 error     at Error (native) parent: 'microtrack' 
3253 error Please try running this command again as root/Administrator.
3254 verbose exit [ -4048, true ]`

上下文:我一直在关注 Brad Traversy 在 YT 上的 NodeJS 和 Express 数据库应用程序系列,试图学习一些在我的项目中使用的后端内容,并且他使用的命令(如上所列)完美运行。

提前感谢您的任何帮助/建议。

【问题讨论】:

使用sudo npm install express --save 尝试以root/Administrator 的身份运行它,正如它在日志的倒数第二行中所说的那样。 不幸的是,sudo 不被识别为命令。我也使用具有管理员权限的终端无济于事。 @NaymanLeung 我认为您在 Windows 环境中,因此请尝试以管理员身份打开您的 cmd,然后 npm install express --save 试试npm cache clean 有时事情会被搞砸。 【参考方案1】:

我做了更多的研究,发现在关闭 atom IDE 后运行 npm install 命令是有效的。感谢大家的帮助!

完整线程:https://github.com/npm/npm/issues/12059 回答到页面底部

【讨论】:

【参考方案2】:

检查您的问题是否是由名为 .staging 的目录引起的。通常当一个目录以 . mean 是一个隐藏文件夹,因此在这种情况下,安装程序会避开该文件夹,因此它试图找到路径 'C:\Users\Leungi5368\Documents\CS Education\Side Projects\TimeManagerElectron\TimeManagerElectron\node_modules\ depd' 不存在的

【讨论】:

以上是关于通过 nodejs 安装 Express 时出错的主要内容,如果未能解决你的问题,请参考以下文章

连接到 websockets NodeJS Express 服务器时出错

nodejs+express+jade配置

nodejs+express+ejs生成项目

nodejs安装使用express

React第六篇: 搭建React + Router + antd + nodejs + express框架搭建(nodejs做前后端server)

nodejs学习笔记--Express下安装模版引擎ejs