前言: 在看create-react-app的时候看到了这样一条命令
npx create-react-app my-app
复制代码
那么问题来了,npx是什么?
执行npm包里面的二进制文件,目的是为了提升开发者使用包内提供的命令行工具的体验。
那么为什么要引入npx? 在以往我们用create-react-app脚手架创建项目的时候是这样操作的
npm install -g create-react-app
create-react-app my-app
复制代码
有了npx,我们只需要执行
npx create-react-app my-app
复制代码
这条命令会临时安装create-react-app包,命令完成后create-react-app会删掉,不会出现在 global 中
默认情况下, npx 会自动查找当前依赖包中的可执行文件,如果找不到,就会去 PATH 里找。如果依然找不到,就会帮你安装! 一般情况下,我们在项目中执行一个脚本是放在package.json里面的script,例如create-react-app里面
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
复制代码
通过执行 npm run start
执行 react-scripts start
,实际上npm run 执行的也是node_modules/.bin里面的可执行文件。因此这条命令就等同于npx react-scripts start
因为配置scripts脚本已经使我们熟知的方式,所以对于项目中常用的命令,仍推荐写在script里面。 而对于那些一次性操作,比如init create-react-app 这样的,推荐使用hpx.
##踩坑记录:
1、默认情况下npm 5.2.0 以上版本就会有npx,但是我发现我的npm是6的版本,却没有,因此执行了
npm install -g npx
复制代码
查询错误原因,是node和npm的版本问题,利用n stable
升级了node的版本,依然报错
目测是我的npm出了问题,于是我利用tnpm升级了npm,成功了,机智如我~