学习使人进步

yarn命令使用

yarn 命令使用

版本说明 (当前文档使用版本)
  • yarn : 0.17.10
安装
1. macOS 通过 homebrew 安装 brew install yarn 
   或者 通过 npm install -g yarn
2. Windows 下载安装 下载地址
3. 查看版本 yarn --version
1. 开始一个新工程
yarn init

对应 npm init

2. 添加一个依赖
yarn add webpack@2.3.3

对应 npm install webpack@2.3.3 --save –save 是 yarn 默认的

yarn add webpack --dev

对应 npm install webpack --save-dev

yarn global add webpack

对应 npm install webpack --global

3. 更新一个依赖
yarn upgrade

对应 npm update --save

4. 移除一个依赖
yarn remove webpack

对应 npm uninstall webpack --save

5. 安装 package.json 中的所有文件
yarn 或者 yarn install

对应 npm install

6. 运行脚本
yarn run

对应 npm run

7.package缓存
yarn cache ls 列出每个缓存的包

yarn cache clean 清除本地缓存
8.yarn配置文件
yarn config list 列出所有配置项

yarn config get xxx 显示某项配置的值

yarn config set xxx xxx 修改配置

yarn config delete xxx 删除配置

更改路径配置(换成淘宝镜像)

yarn config set registry https://registry.npm.taobao.org
9.显示包信息
yarn info react
10.全局安装
yarn global add webpack
11.自我更新
yarn self-update 已经不好使了
12. 更多
更多详细内容查看[中文官方文档](https://yarnpkg.com/zh-Hans/)
13. 问题
  1. 通过 yarn run 等运行脚本时,会报错

    定义在package.json 中的 脚本

"scripts": { "run": "webpack-dev-server --progress --colors --config webpack.dev.config.js", "dev": "webpack --progress --colors --config webpack.dev.config.js"

}

yarn run run

yarn run v0.17.10
$ webpack-dev-server --progress --colors --config webpack.dev.config.js fs.js:640
return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode); ^

Error: EACCES: permission denied, open '/Users/zhangmingjia/Desktop/document/ceshi/temp/router4-test/node_modules/arr-flatten/index.js'

大概意思是没有权限,然后加上 sudo 又试了一下 sudo yarn run run

yarn run v0.17.10
$ webpack-dev-server --progress --colors --config webpack.dev.config.js 10% building modules 2/2 modules 0 active
Project is running at http://10.15.32.78:8087/
webpack output is served from /Users/zhangmingjia/Desktop/document/ceshi/temp/router4-test/dev
Content not from webpack is served from /Users/zhangmingjia/Desktop/document/ceshi/temp/router4-test/dev
404s will fallback to /index.html
Hash: d374085597660a7a1085
Version: webpack 2.3.3
Time: 5083ms
Asset Size Chunks Chunk Names js/vendor.js 1.31 MB 0 [emitted] [big] vendor js/bundle.js 44.5 kB 1 [emitted] app chunk-manifest.json 43 bytes [emitted]
js/manifest.js 5.88 kB 2 [emitted] manifest js/vendor.js.map 1.56 MB 0 [emitted] vendor js/bundle.js.map 43.3 kB 1 [emitted] app js/manifest.js.map 5.9 kB 2 [emitted] manifest index.html 1.28 kB [emitted]
Child html-webpack-plugin for "index.html":
Asset Size Chunks Chunk Names index.html 545 kB 0
webpack: Compiled successfully.

看了别人的博客,貌似没有这个问题啊,而且设置的 webpack devServer.open = true, 可以打开浏览器,但是不会跳转到设定好的页面(用 npm 时 没有这个问题) 2. 安装 package.json 中文件的问题

正常安装 sudo yarn add react@15.4.2 package.json 中 出现 "dependencies": { "react": "15.4.2" }

通过终端查看安装版本 yarn list ├─ react@15.4.2 │ ├─ fbjs@^0.8.4 │ ├─ loose-envify@^1.1.0 │ └─ object-assign@^4.1.0

是正确的版本,但是,如果在 package.json 中加上如下依赖,然后通过 sudo yarn install 安装 "dependencies": { "react": "15.4.2", "react-dom": "^15.4.2", "jquery": "^3.0.0" }

通过终端查看安装版本 yarn list ├─ react-dom@15.5.3 │ ├─ fbjs@^0.8.9 │ ├─ loose-envify@^1.1.0 │ ├─ object-assign@^4.1.0 │ └─ prop-types@~15.5.0 ├─ react@15.4.2 │ ├─ fbjs@^0.8.4 │ ├─ loose-envify@^1.1.0 │ └─ object-assign@^4.1.0 ├─ jquery@3.2.1

react 还是之前的版本,但是 新安装的 react-dom 和 jquery 都变成了 最新版本

再试试将版本号的写法变一下 去掉 ^ "dependencies": { "react": "15.4.2", "react-dom": "15.4.2", "jquery": "3.0.0" }

通过 sudo yarn install 安装 查看安装版本 yarn list ├─ react-dom@15.4.2 │ ├─ fbjs@^0.8.1 │ ├─ loose-envify@^1.1.0 │ └─ object-assign@^4.1.0 ├─ react@15.4.2 │ ├─ fbjs@^0.8.4 │ ├─ loose-envify@^1.1.0 │ └─ object-assign@^4.1.0 ├─ jquery@3.0.0

安装的是正确的版本了 说明

"react-dom": "^15.4.2"这种写法,加了^,是一般是通过npm install --save安装插件生成版本号的默认格式,表示安装15.x.x的最新版本,安装时不改变大版本号 "react-dom": "15.4.2"这种写法,只有版本号,是 yarn add安转后生成版本号的默认格式,表示必须安装同一个版本号 版本号控制,有一个规范,就是语义化版本号控制,规定了版本号格式为:主版本号.次版本号.修订号; 主版本号:当你做了不兼容的 API 修改 次版本号:当你做了向下兼容的功能性新增 修订号:当你做了向下兼容的问题修正 之前用npm 也会有按照package.json 安装的文件版本不一致问题,但是没有报错一般就忽略了。一般来讲 只要主版本号正确,就可以兼容,但是像 最新版的 react@15.5.3 ,出现了React.createClass与React.PropTypes弃用的警告,控制台一片红,因为引用了第三方组件库,最后选择暂不升级react,类似的情况,个人感觉 yarn 默认的版本号写法(只安装特定版本的文件),更符合需求,npm 的话,很可能导致两个拥有同样package.json 的应用,安装了不同版本的包,进而导致一些BUG。

14. 总结

执行 yarn run run 等脚本命令的时候需要 加 sudo 获取权限,挺麻烦的,搜索引擎查了一下,有提议开启超级管理员的,公司的电脑,还是不折腾了。

© 学习使人进步 – fanlinglong.com 鄂ICP备17029874号 鄂公网安备 42011102000907号