声明:本教程不收取任何费用,欢迎转载,尊重作者劳动成果,不得用于商业用途,侵权必究!!!
目录
解决方式1
一、我的express安装过程
二、问题解决
解决方式2(推荐)
总结
根据官方安装了nodejs的web框架express
npm install express
执行如上命令,出现权限问题!
MacBook-Pro:xxx luminal$ npm install express
npm WARN checkPermissions Missing write access to /Users/luminal/node_modules/express
npm WARN luminal No description
npm WARN luminal No repository field.
npm WARN luminal No license field.
npm ERR! path /Users/luminal/node_modules/express
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall access
npm ERR! Error: EACCES: permission denied, access '/Users/luminal/node_modules/express'
npm ERR! { [Error: EACCES: permission denied, access '/Users/luminal/node_modules/express']
npm ERR! stack:
npm ERR! 'Error: EACCES: permission denied, access \'/Users/luminal/node_modules/express\'',
npm ERR! errno: -13,
npm ERR! code: 'EACCES',
npm ERR! syscall: 'access',
npm ERR! path: '/Users/luminal/node_modules/express' }
npm ERR!
npm ERR! The operation was rejected by your operating system.
npm ERR! It is likely you do not have the permissions to access this file as the current user
npm ERR!
npm ERR! If you believe this might be a permissions issue, please double-check the
npm ERR! permissions of the file and its containing directories, or try running
npm ERR! the command again as root/Administrator (though this is not recommended).
npm ERR! A complete log of this run can be found in:
npm ERR! /Users/luminal/.npm/_logs/2019-10-15T01_08_57_124Z-debug.log
加上sudo命令,如下:
sudo npm install express
提示信息如下:
npm WARN luminal No description
npm WARN luminal No repository field.
npm WARN luminal No license field.
+ [email protected]
updated 1 package and audited 211 packages in 8.049s
found 0 vulnerabilities
意思安装成功,当并没有像网上说的,在当前目录生成了node_modules,
于是继续查找原因说是:express 4.0版本之后将命令行工具单独分离出来,叫做express-generator
$ express --version //查看版本
-bash: express: command not found
$ npm install -g express-generator //出现权限问题
$ sudo npm install -g express-generator //express-generator应用生成器的安装
Password:
/Users/luminal/.nvm/versions/node/v10.16.0/bin/express -> /Users/luminal/.nvm/versions/node/v10.16.0/lib/node_modules/express-generator/bin/express-cli.js
+ [email protected]
updated 1 package in 4.464s
$ express --version //查看版本
-bash: express: command not found
$ sudo npm install -g express-generator@4
/Users/luminal/.nvm/versions/node/v10.16.0/bin/express -> /Users/luminal/.nvm/versions/node/v10.16.0/lib/node_modules/express-generator/bin/express-cli.js
+ [email protected]
updated 1 package in 5.319s
$ express --version //查看版本
-bash: express: command not found
经过一番测试,当前目录不但没有生成node_modules,
而且查看版本一直出现提示:-bash: express: command not found,
期间也去过 StackOverFlow(IT问答网站) 里面查找。
说是要配置nodejs的环境,找了网上很多资料都是windows系统的,而且都是项目建立以后才出现问题配置的。
最后看到nvm命令的相关信息,灵光一闪!
想到前段时间自己安装了nvm,是不是要指定node版本啊,执行如下命令,搞定!
心情难于言表,有时候成就感就是这么来的嘛!终于搞定你,还好我没放弃!
其他可参考事发地:Node.js后端开发 - 基础篇 #16 包管理器 NPM
下面是我输入的命令,查看express版本成功,即安装下载成功,可以使用了!
1、查看node所有安装版本、前头对应的是当前使用的node版本
$ nvm ls //查看node所有安装版本
v10.16.0
v12.6.0
-> system
node -> stable (-> v12.6.0) (default)
stable -> 12.6 (-> v12.6.0) (default)
iojs -> N/A (default)
lts/* -> lts/dubnium (-> v10.16.0)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.16.0 (-> N/A)
lts/dubnium -> v10.16.0
2、指定当前使用的node版本
$ nvm use v10.16.0 //指定当前使用的node版本
Now using node v10.16.0 (npm v6.9.0)
$ nvm ls //查看node所有安装版本
-> v10.16.0
v12.6.0
system
node -> stable (-> v12.6.0) (default)
stable -> 12.6 (-> v12.6.0) (default)
iojs -> N/A (default)
lts/* -> lts/dubnium (-> v10.16.0)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.16.0 (-> N/A)
lts/dubnium -> v10.16.0
3、查看express版本
$ express --version //查看express版本
4.16.1
注:大家可以多去Stack Overflow上面交流问题,http://www.stackoverflow.com ,Stack Overflow是一个与程序相关的IT技术问答网站。用户可以在网站免费提交问题,浏览问题,索引相关内容,在创建主页的时候使用简单的HTML。在问题页面,不会弹出任何广告,销售信息,JavaScript 窗口等
安装express之前,需先初始化项目,执行 npm init -y 命令
此种方式是使用局部的express,上面的 方式1 是使用全局的express
详见参考: Node.js后端开发 - 进阶篇 #8 express框架之路由模块的封装 的 “ 1、初始化项目、安装express框架 ” 部分
如果你是测试的话,建议使用方式1,使用全局的,不用每次都安装
如果你是项目正式开发的话,那就使用局部的吧,使用方式2