npm yarn 命令对比

2020-02-27 09:01:32

参考地址 yarn详细入门教程

Yarn 是 Facebook, Google, Exponent 和 Tilde 开发的一款新的 JavaScript 包管理工具。就像我们可以从官方文档了解那样,它的目的是解决这些团队使用 npm 面临的少数问题.

一键安装

官网脚本:

curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --nightly

或者:

最简单的方法是运行:

npm install -g yarn

现在的yarn安装页面是这么说的:

注意:通常情况下不建议通过npm进行安装。npm安装是非确定性的,程序包没有签名,并且npm除了做了基本的SHA1哈希之外不执行任何完整性检查,这给安装系统程序带来了安全风险。

基于这些原因,强烈建议你通过最适合于你的操作系统的安装方法来安装yarn。

以这种速度发展下去的话,如果yarn要宣布他们自己的registry,让开发者慢慢淘汰npm的话,我们一点都不会感到惊讶。

安装成功后即可查看版本:

yarn –version

常用命令

初始化一个新项目

yarn init

添加依赖包

yarn add [package]yarn add [package]@[version]yarn add [package]@[tag]

将依赖项添加到不同依赖项类别中

分别添加到 devDependencies、peerDependencies 和 optionalDependencies 类别中:

yarn add [package] --dev
yarn add [package] --peer
yarn add [package] --optional

升级依赖包

yarn upgrade [package]
yarn upgrade [package]@[version]
yarn upgrade [package]@[tag]

移除依赖包

yarn remove [package]

安装项目的全部依赖

yarn

或者

yarn install

例如:

$ yarn install
yarn install v1.13.0-20181121.1436warning package-lock.json found. Your project contains lock files generated by tools other than Yarn. It is advised not to mix package managers in order to avoid resolution inconsistencies caused by unsynchronized lock files. To clear this warning, remove package-lock.json.[1/4] 🔍  Resolving packages...[2/4] 🚚  Fetching packages...[3/4] 🔗  Linking dependencies...warning " > babel-jest@23.6.0" has unmet peer dependency "babel-core@^6.0.0 || ^7.0.0-0".[4/4] 📃  Building fresh packages...$ lerna bootstrap
lerna notice cli v3.4.3lerna info Bootstrapping 5 packages
lerna info Installing external dependencies
lerna info Symlinking packages and binaries
lerna success Bootstrapped 5 packages
✨  Done in 271.39s.

$ yarn build
yarn run v1.13.0-20181121.1436$ lerna run build --ignore selenium-ide-extension-boilerplate
lerna notice cli v3.4.3lerna info filter [ '!selenium-ide-extension-boilerplate' ]lerna info Executing command in 4 packages: "yarn run build"$ yarn run browserify src/index.js -s browser-webdriver -o build/webdriver.js
$ /Users/jack/ui/selenium-ide/packages/browser-webdriver/node_modules/.bin/browserify src/index.js -s browser-webdriver -o build/webdriver.js
$ rollup -c
$ babel -d dist src --ignore=__test__
src/capabilities.js -> dist/capabilities.js
src/child.js -> dist/child.js
src/config.js -> dist/config.js
src/index.js -> dist/index.js
src/npm.js -> dist/npm.js
src/versioner.js -> dist/versioner.js
$ rm -rf build && env NODE_ENV=production webpack
Hash: 5f687715a247631dc1c4
Version: webpack 3.12.0Time: 108660ms                                      Asset       Size  Chunks                    Chunk Names
                              escape.js.map    14.2 kB       6  [emitted]         escape
media/selenium_blue_white32@3x.84ab23d0.svg    3.62 kB          [emitted]         
            media/selenium-ide.9b39b00c.svg    21.8 kB          [emitted]         
                                playback.js    99.7 kB       0  [emitted]         playback
                                  record.js    39.4 kB       1  [emitted]         record
                                     neo.js    2.43 MB       2  [emitted]  [big]  neo
                                   atoms.js     494 kB       3  [emitted]  [big]  atoms
                              background.js      12 kB       4  [emitted]         background
                               polyfills.js    7.15 kB       5  [emitted]         polyfills
                                  escape.js    2.99 kB       6  [emitted]         escape
                            playback.js.map     387 kB       0  [emitted]         playback
                              record.js.map     162 kB       1  [emitted]         record
                                 neo.js.map    8.53 MB       2  [emitted]         neo
                               atoms.js.map    2.23 MB       3  [emitted]         atoms
                          background.js.map    54.8 kB       4  [emitted]         background
                           polyfills.js.map    40.6 kB       5  [emitted]         polyfills
            media/selenium-ide.461193c2.ttf    7.44 kB          [emitted]         
                           vendor/global.js  825 bytes          [emitted]         
           vendor/selenium-browserdetect.js    5.27 kB          [emitted]         
                                  prompt.js    7.25 kB          [emitted]         
                              highlight.css  952 bytes          [emitted]         
                          ../bootstrap.html    1.57 kB          [emitted]         
                           ../manifest.json    1.74 kB          [emitted]         
                               indicator.js  694 bytes          [emitted]         
                          ../indicator.html    1.03 kB          [emitted]         
                       ../icons/icon128.png    5.88 kB          [emitted]         
                   ../icons/icon_menu32.png    1.22 kB          [emitted]         
                        ../icons/icon16.png  612 bytes          [emitted]         
                   ../icons/icon_menu16.png  552 bytes          [emitted]         
                   ../icons/icon_menu64.png    2.76 kB          [emitted]         
                        ../icons/icon32.png    1.29 kB          [emitted]         
                        ../icons/icon64.png    2.91 kB          [emitted]         
                              ../index.html  315 bytes          [emitted]         
 [133] ./content/commands-api.js 6.84 kB {0} [built]
 [146] ./content/escape.js 5.11 kB {0} {6} [built]
 [229] ./content/locatorBuilders.js 11.6 kB {3} [built]
 [320] multi ./content/setup 28 bytes {5} [built]
 [321] ./content/setup.js 1.28 kB {5} [built]
 [322] multi ./content/commands-api 28 bytes {0} [built]
 [385] multi ./background/background 28 bytes {4} [built]
 [386] ./background/background.js 5.09 kB {4} [built]
 [387] multi ./content/record 28 bytes {1} [built]
 [388] ./content/record.js 19.5 kB {1} [built]
 [389] ./content/record-api.js 9.7 kB {1} [built]
 [390] ./content/prompt-recorder.js 2.41 kB {1} [built]
 [391] multi ./content/escape 28 bytes {6} [built]
 [392] multi react-hot-loader/patch ./neo/containers/Root 40 bytes {2} [built]
 [396] ./neo/containers/Root/index.jsx 1.61 kB {2} [built]
    + 1075 hidden modulesChild html-webpack-plugin for "../index.html":
     1 asset       [0] ../node_modules/html-webpack-plugin/lib/loader.js!./neo/index.html 720 bytes {0} [built]
        + 3 hidden modules
lerna success run Ran npm script 'build' in 4 packages:lerna success - browser-webdriver
lerna success - selenium-ide-extension
lerna success - selenium-side-runner
lerna success - selianize
✨  Done in 130.43s.

$ npm start> selenium-ide@ start /Users/jack/ui/selenium-ide> cd packages/selenium-ide && yarn start

yarn run v1.13.0-20181121.1436$ env NODE_ENV=test webpack-dev-server --hotProject is running at http://localhost:8081/webpack output is served from /assets/Hash: a6db07ced022ebcba304
Version: webpack 3.12.0Time: 43408ms                                      Asset       Size  Chunks                    Chunk Names
                                  prompt.js    7.25 kB          [emitted]         media/selenium_blue_white32@3x.84ab23d0.svg    3.62 kB          [emitted]         
            media/selenium-ide.9b39b00c.svg    21.8 kB          [emitted]         
                                playback.js     617 kB       0  [emitted]  [big]  playback
                                  record.js     298 kB       1  [emitted]  [big]  record
                                     neo.js    18.7 MB       2  [emitted]  [big]  neo
                                   atoms.js    5.16 MB       3  [emitted]  [big]  atoms
                              background.js     988 kB       4  [emitted]  [big]  background
                               polyfills.js     957 kB       5  [emitted]  [big]  polyfills
                                  escape.js     898 kB       6  [emitted]  [big]  escape
                              highlight.css  952 bytes          [emitted]         
                           vendor/global.js  825 bytes          [emitted]         
           vendor/selenium-browserdetect.js    5.27 kB          [emitted]         
            media/selenium-ide.461193c2.ttf    7.44 kB          [emitted]         
                          ../bootstrap.html    1.57 kB          [emitted]         
                          ../indicator.html    1.03 kB          [emitted]         
                               indicator.js  694 bytes          [emitted]         
                           ../manifest.json    1.74 kB          [emitted]         
                   ../icons/icon_menu64.png    2.76 kB          [emitted]         
                   ../icons/icon_menu32.png    1.22 kB          [emitted]         
                       ../icons/icon128.png    5.88 kB          [emitted]         
                   ../icons/icon_menu16.png  552 bytes          [emitted]         
                        ../icons/icon16.png  612 bytes          [emitted]         
                        ../icons/icon64.png    2.91 kB          [emitted]         
                        ../icons/icon32.png    1.29 kB          [emitted]         
                              ../index.html  315 bytes          [emitted]         
  [40] (webpack)-dev-server/client?http://localhost:8081 7.93 kB {2} {3} {4} {5} {6} [built]
  [41] (webpack)/hot/dev-server.js 1.61 kB {2} {3} {4} {5} {6} [built]
 [170] ./src/content/commands-api.js 7.77 kB {0} [built]
 [183] ./src/content/escape.js 5.96 kB {0} {6} [built]
 [432] multi (webpack)-dev-server/client?http://localhost:8081 webpack/hot/dev-server ./content/setup 52 bytes {5} [built]
 [433] ./src/content/setup.js 1.36 kB {5} [built]
 [434] multi (webpack)-dev-server/client?http://localhost:8081 webpack/hot/dev-server ./content/commands-api 52 bytes {0} [built]
 [497] multi (webpack)-dev-server/client?http://localhost:8081 webpack/hot/dev-server ./background/background 52 bytes {4} [built]
 [498] ./src/background/background.js 6.57 kB {4} [built]
 [499] multi (webpack)-dev-server/client?http://localhost:8081 webpack/hot/dev-server ./content/record 52 bytes {1} [built]
 [500] ./src/content/record.js 23.2 kB {1} [built]
 [503] multi (webpack)-dev-server/client?http://localhost:8081 webpack/hot/dev-server ./content/escape 52 bytes {6} [built]
 [504] multi (webpack)-dev-server/client?http://localhost:8081 webpack/hot/dev-server react-hot-loader/patch ./neo/containers/Root 64 bytes {2} [built]
 [505] ./node_modules/react-hot-loader/patch.js 40 bytes {2} [built]
 [600] ./src/neo/containers/Root/index.jsx 1.82 kB {2} [built]
    + 1163 hidden modulesChild html-webpack-plugin for "../index.html":
     1 asset       [0] ./node_modules/html-webpack-plugin/lib/loader.js!./src/neo/index.html 720 bytes {0} [built]
       [1] ./node_modules/html-webpack-plugin/node_modules/lodash/lodash.js 540 kB {0} [built]
       [2] (webpack)/buildin/global.js 509 bytes {0} [built]
       [3] (webpack)/buildin/module.js 517 bytes {0} [built]webpack: Compiled successfully.


  • 2019-10-14 21:18:57

    Comparable 的 使用

    要做这个呢,我们也是用到了Arrays.sort 这个排序的方法!但不同的是,我们之前用的是int数组,现在我们用的是这个UserBean数组。如果你想对这个UserBean数组进行排序,你要多做一件事,就是让这个 UserBean类去 实现Comparable 的接口,并重写 里面  comparaTo 的方法。注意,这个接口是可以提供泛型的 ———————————————— 版权声明:本文为CSDN博主「sdn_bt496」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明

  • 2019-10-15 05:53:20

    xUtils 里的DbUtils使用心得

    使用xUtils做Android数据库开发非常简便和得心应手,而且它本身还支持很多查询功能,比如一对多,select count和自定义sql查询等,并且支持事务(默认关闭) 下面是官方sample给的代码和我的一些使用心得 首先是两个实体类,对应两张表,这两张表中有一对多的关系

  • 2019-10-15 09:18:48

    腾讯 Android 面试笔试总结

    Activity中的几种启动模式 Android消息机制 IntentService 事件分发 Android性能优化、内存优化 内存优化 View的绘制 Eventbus原理 Rxjava的操作符有哪些,说说他们的作用 线程锁 锁方法和类对象啥的有啥区别 AsyncTask原理 说说MVP和MVVM的特点 Android中用到的观察者模式有哪些地方 说说google新出的Lifecycle框架 okhttp原理 Retrofit原理 RecyclerView源码、缓存分析 Binder机制 Android Jetpack Kotlin Activity中的几种启动模式

  • 2019-10-15 09:20:49

    SpringBoot注解梳理

    @SpringBootApplication:包含了@ComponentScan、@Configuration和@EnableAutoConfiguration注解。其中@ComponentScan让spring Boot扫描到Configuration类并把它加入到程序上下文。 @Configuration 等同于spring的XML配置文件;使用Java代码可以检查类型安全。 @EnableAutoConfiguration 自动配置。 @ComponentScan 组件扫描,可自动发现和装配一些Bean。 @Component可配合CommandLineRunner使用,在程序启动后执行一些基础任务。 @RestController注解是@Controller和@ResponseBody的合集,表示这是个控制器bean,并且是将函数的返回值直 接填入HTTP响应体中,是REST风格的控制器。 @Autowired自动导入。 @PathVariable获取参数。 @JsonBackReference解决嵌套外链问题。 @RepositoryRestResourcepublic配合spring-boot-starter-data-rest使用。

  • 2019-10-15 09:52:00

    动图解释递归,按值传递和按引用传递的区别,线性查找和二分查找,二叉查找树

    对于大部分人,数据结构一直是一个短板,当然我也是,不是学不会,而是容易忘,就拿最简单的排序来说吧,当时学习的时候明明已经弄得很清楚了,过了一段时间不用又忘记了,还要重新再看一遍,不知道有多少小伙伴和我有一样的烦恼。今天让我们用用动图的方式学习一下数据结构中的递归和二分查找吧,这种讲解方式非常生动,而且非常容易记住和理解。