通过 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 服务器时出错
React第六篇: 搭建React + Router + antd + nodejs + express框架搭建(nodejs做前后端server)