You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
npmstart// 是 npm run start 的简写npmstop// 是 npm run stop 的简写npmtest// 是 npm run test 的简写npmrestart// 是 npm run stop && npm run restart && npm run start 的简写
一. package.json 解读
package.json
在 node 和 npm 环节都要使用,node 在调用require
的时候去查找模块,会按照一个次序去查找,package.json
会是查找中的一个环节。npm 用的就比较多,其中的dependencies
字段就是本模块的依赖的模块清单。每次npm update
的时候,npm会自动的把依赖到的模块也下载下来。当npm install
本模块的时候,会把这里提到的模块都一起下载下来。通过package.json,就可以管理好模块的依赖关系。关于更多规范,请看官方npm-package.json
二. 版本号规范
三. npm install 与 npm update
node_modules
已安装,再次执行install
不会更新包版本, 执行update
才会更新; 而如果本地node_modules
为空时,执行install/update
都会直接安装更新包;npm update
总是会把包更新到符合package.json
中指定的 semver(语义化版本) 的最新版本号——本例中符合^1.8.0
的最新版本为1.15.0
package.json
, 无论后面执行npm install
还是update
,package.json
中的 webpack 版本一直顽固地保持 一开始的^1.8.0
岿然不动四. npm i 与 npm install
实际使用的区别点主要如下:
npm i
安装的模块无法用npm uninstall
删除,用npm un
才卸载掉npm i
会帮助检测与当前 node 版本最匹配的 npm 包版本号,并匹配出来相互依赖的 npm 包应该提升的版本号npm-debug.log
文件,npm i
不一定五. npm devDependencies 与 dependencies
--save-dev
或
—save
首先需要说明的是 Dependencies一词的中文意思是依赖和附属的意思,而dev则是 develop(开发)的简写。
所以它们的区别在 package.json 文件里面体现出来的就是,使用
--save-dev
安装的 插件,被写入到 devDependencies 域里面去,而使用—save
安装的插件,则是被写入到 dependencies 区块里面去。那 package.json 文件里面的 devDependencies 和 dependencies 对象有什么区别呢?
devDependencies 里面的插件只用于开发环境,不用于生产环境,而 dependencies 是需要发布到生产环境的。
比如我们写一个项目要依赖于jQuery,没有这个包的依赖运行就会报错,这时候就把这个依赖写入dependencies
六. 全局安装与本地安装
通过
-g
来安装的包,将包安装成全局可用的可执行命令。1. 全局安装, 将包安装成全局可用的可执行命令
2. 本地安装
3. 修改全局安装默认路径
设置自定义的全局安装路径
设置环境变量
切到 ~/.bash_profile 文件中配置路径:
操作系统中都会有一个
PATH
环境变量,想必大家都知道,当系统调用一个命令的时候,就会在PATH变量中注册的路径中寻找,如果注册的路径中有就调用,否则就提示命令没找到。而
NODE_PATH
就是NODE
中用来 寻找模块所提供的路径注册环境变量 。我们可以使用上面的方法指定NODE_PATH
环境变量。使用
npm config list
查看配置七. npm 包命令
还有其他的 钩子命令,具体项目中我还没用到,你可以自行了解。
package.json 中 scripts 常用命令:
八. 简写形式
九. process
我们可以通过环境变量
process.env
对象,拿到 npm 所有的配置变量。其中 npm 脚本可以通过npm_config_
前缀,拿到 npm 的配置变量。通过npm_package_
前缀,拿到package.json
里面的字段。对于 全局模式安装的包(通过 -g 来安装的包,将包安装成全局可用的可执行命令,并不意味着任何地方都可以通过 require() 来引用它):它会通过 bin 字段配置,将实际脚本链接到 Node 可执行目录下,例如
通过全局安装的包都安装到一个统一的目录下,可以通过以下方式获得:
一零. npm 发布包
npm init
在这个过程中,npm 会将目录打包成一个存档文件,然后上传到官方源仓库中
在自己的项目中安装包
npm install
,通过npm ls
分析模块路径找到的所有包,并生成依赖树。The text was updated successfully, but these errors were encountered: