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.


  • 2018-03-31 09:37:33

    Android Sqlite查询优化之一---运用索引

    最近笔者在做聊天功能模块,发现当本地聊天数据记录过大,以10万行数据进行了检索测试,发现时间太长了,要6s左右,但学着运用了下索引,时间大大提升,紧要几百毫秒就能完成. 以下内容,摘抄至网络

  • 2018-04-02 10:50:59

    mybatis 中的<![CDATA[ ]]>

    在使用mybatis 时我们sql是写在xml 映射文件中,如果写的sql中有一些特殊的字符的话,在解析xml文件的时候会被转义,但我们不希望他被转义,所以我们要使用<![CDATA[ ]]>来解决。

  • 2018-04-03 10:21:35

    jquery实时监听输入框值变化

    在做web开发时候很多时候都需要即时监听输入框值的变化,以便作出即时动作去引导浏览者增强网站的用户体验感。而采用onchange时间又往往是在输入框失去焦点(onblur)时候触发,有时候并不能满足条件。

  • 2018-04-03 10:22:20

    JQuery如何监听DIV内容变化

    这几天在做一个微博的接入,需要判断微博是否被关注,要检查微博标签的DIV是否有“已关注”的字符,但这个DIV的内容是微博JSSDK动态生成。$("#id").html()是获取不到我想要的内容。原因是当我们获取的时候内容还没有改变,所以获取不到,如果就想到监听这个DIV内容变化后,再来获取就个时候就能获取到了。于是产生新的问题,如何监听DIV的变化?

  • 2018-04-04 23:52:03

    PowerManager之PowerManager

    当你在做一些事情时,如果持续时间过长,那么一段时间后屏幕会灭掉,如果你想在你做这些事时屏幕始终保持点亮状态,那么你需要WakeLock的帮助。

  • 2018-04-07 23:35:16

    使用Intent传递对象的两种方式

    Intent 的用法相信你已经比较熟悉了,我们可以借助它来启动活动、发送广播、启动服务等。在进行上述操作的时候,我们还可以在Intent 中添加一些附加数据,以达到传值的效果,比如在FirstActivity 中添加如下代码:

  • 2018-04-10 14:59:59

    JS实现数组去重方法总结(六种方法)

    这篇文章给大家总结下JS实现数组去重方法(六种方法),面试中也经常会遇到这个问题。文中给大家引申的还有合并数组并去重的方法,感兴趣的朋友跟随脚本之家小编一起学习吧