npm init -ynpm install globule@0.1.0 -Snpm install babel-generator@6.19.0 -Snpm install babel-helper-define-map@6.18.0 -S我们这里安装了3个包都依赖于lodash,不过globule依赖lodash@1.0.3,另外两个依赖lodash@4.x。
这时假设我们在项目里使用lodash,但是忘记重新安装lodash
var lodash = require("lodash");console.log(lodash.VERSION); // v1.0.3另一个同事获取项目代码,执行
npm install
, 这时的目录依赖结构为
正确的安装姿势
注意yarn依赖node运行环境,官网提供了不同环境下的N种安装方法,点我查看。其中最重要的也是最通用的当然是npm install yarn -g
,也不知道官网搞那么多幺蛾子的安装方式干嘛又是brew又是yum,还折腾半天。
yarn常用命令介绍
创建项目
命令yarn init
,详细介绍
跟npm一样,会出现一个交互式的窗口,问一些package相关的问题
question name (testdir): my-awesome-packagequestion version (1.0.0): question description: The best package you will ever find.question entry point (index.js): question git repository: https://github.com/yarnpkg/example-yarn-packagequestion author: Yarn Contributorquestion license (MIT): success Saved package.json✨ Done in 87.70s.当然可以加参数
--yes/-y
来自动回答所有的问题(yes),便捷的生成一个package.jsonyarn add [package]@[version/tag]
,详细介绍{ "name": "my-package", "dependencies": {+ "package-1": "^1.0.0" } }添加到不同的dependencies需要加如下参数
yarn add --dev/-D
添加到devDependenciesyarn add --peer/-P
添加到peerDependenciesyarn add --optional/-O
添加到optionalDependenciesyarn upgrade [package]@[version/tag]
,详细介绍{ "name": "my-package", "dependencies": {- "package-1": "^1.0.0"+ "package-1": "^2.0.0" } }删除依赖
yarn remove [package]
yarn install
,详细介绍yarn install
时会根据yarn.lock安装依赖,保证不同的电脑安装的依赖目录结构完全一致。yarn install
--flat 有且仅有一个依赖的版本被允许,多依赖会出现一个交互式窗口,让使用者选择某一个版本安装yarn install
--force 强制重新下载所有的依赖包yarn install
--production 只下载dependencies下的依赖npm install gulp -g
,可以用yarn global add gulp
来替代npm register
加速, yarn config set registry "https://registry.npm.taobao.org"
,当然如果npm已经配置过,yarn就无需再配置了。yarn self-update
来更新版本npm shrinkwrap
命令,感觉繁琐且难维护,使用yarn后自动生成锁定文件,简单方便