前言: 在接触学子 React 的时候,创建react应用项目使用的命令是
npx create-react-app my-app
,有些奇怪,为什么为添加 npx 呢? 其实写法是正确的,npx 不是拼写错误,它是 npm 5.2+ 附带的 package 运行工具。
注意:
NPM实际上自身不能去运行任何包,如果你想去执行某个包,必须在package.json文件中去定义。
当通过NPM安装Node包,NPM会在node_modules下的.bin里创建一个软链接。
本地安装链接会放到./node_modules/.bin目录。
全局安装会链接到全局的文件,linux/macos在/usr/local/bin里,windows则在/AppData/npm。
NPM管理node包的工具
众所周知,npm是node.js 的软件包管理器,目标是实现自动化的依赖性和软件包管理。
这也意味着,可以在 package.json 文件中添加项目所需的所有依赖项(软件包),并在需要的时候,执行 npm install
来安装即可。
npm运行一些命令:
{
"name": "my-app",
"version": "1.0.0",
"scripts": {
"some-package": "some-package"
}
}
执行 npm run some-package
来运行命令指定的包。
NPX执行node包的工具
npx 是执行node软件包的工具,它从 npm 5.2+开始,就与npm绑定到了一起。
npx的作用:
- 默认情况下,首先会去检查是否当前路径下(即在项目中)是否存在要执行的包;
- 若存在对应的包,则执行它;
- 若不存在,则认为路径下不存在该包,则npx会去安装最新版本的包,并且去执行它。
# 比如创建react应用时
create-react-app my-app # 没有该包的话会有报错提示 zsh: command not found: create-react-app
# 使用npx,先去判断有没有 create-react-app,会走npx作用的步骤流程
npx create-react-app my-app
使用 npx 去执行包时,会保证使用的是最新的构建工具,无需担心包版本升级的问题