技术很久不用,就变得生疏起来。对npm深受其害,决定对yarn再整理一遍。
yarn官网:https://yarn.bootcss.com,学任何技术的最新知识,都可以通过其对应的网站了解。无法直接访问,那就只能科学上网了。
–global 或 -g选项很重要,表示全局安装,后期本机各个项目都得用这个包管理器
# 安装命令
npm install --global yarn
不管在哪个操作系统(Linux、Windows、Mac还是其它),一般都是可以应用命令 -h或者命令 --help获得命令的帮助信息。
F:\yarn>yarn -h
Usage: yarn [command] [flags]
Displays help information.
Options:
--cache-folder <path> specify a custom folder that must be used to store the yarn cache
--check-files install will verify file tree of packages for consistency
--cwd <cwd> working directory to use (default: F:\yarn)
--disable-pnp disable the Plug'n'Play installation
--emoji [bool] enable emoji in output (default: false)
--enable-pnp, --pnp enable the Plug'n'Play installation
--flat only allow one version of a package
--focus Focus on a single workspace by installing remote copies of its sibling workspaces.
--force install and build packages even if they were built before, overwrite lockfile
--frozen-lockfile don't generate a lockfile and fail if an update is needed
--global-folder <path> specify a custom folder to store global packages
--har save HAR output of network traffic
--https-proxy <host>
--ignore-engines ignore engines check
--ignore-optional ignore optional dependencies
--ignore-platform ignore platform checks
--ignore-scripts don't run lifecycle scripts
--json format Yarn log messages as lines of JSON (see jsonlines.org)
--link-duplicates create hardlinks to the repeated modules in node_modules
--link-folder <path> specify a custom folder to store global links
--modules-folder <path> rather than installing modules into the node_modules folder relative to the cwd, output them here
--mutex <type>[:specifier] use a mutex to ensure only one yarn instance is executing
--network-concurrency <number> maximum number of concurrent network requests
--network-timeout <milliseconds> TCP timeout for network requests
--no-bin-links don't generate bin links when setting up packages
--no-default-rc prevent Yarn from automatically detecting yarnrc and npmrc files
--no-lockfile don't read or generate a lockfile
--non-interactive do not show interactive prompts
--no-node-version-check do not warn when using a potentially unsupported Node version
--no-progress disable progress bar
--offline trigger an error if any required dependencies are not available in local cache
--otp <otpcode> one-time password for two factor authentication
--prefer-offline use network only if dependencies are not available in local cache
--preferred-cache-folder <path> specify a custom folder to store the yarn cache if possible
--prod, --production [prod]
--proxy <host>
--pure-lockfile don't generate a lockfile
--registry <url> override configuration registry
-s, --silent skip Yarn console logs, other types of logs (script output) will be printed
--scripts-prepend-node-path [bool] prepend the node executable dir to the PATH in scripts
--skip-integrity-check run install without checking if node_modules is installed
--strict-semver
--update-checksums update package checksums from current repository
--use-yarnrc <path> specifies a yarnrc file that Yarn should use (.yarnrc only, not .npmrc) (default: )
-v, --version output the version number
--verbose output verbose messages on internal operations
-h, --help output usage information
Commands:
- access
- add
- audit
- autoclean
- bin
- cache
- check
- config
- create
- exec
- generate-lock-entry / generateLockEntry
- global
- help
- import
- info
- init
- install
- licenses
- link
- list
- login
- logout
- node
- outdated
- owner
- pack
- policies
- publish
- remove
- run
- tag
- team
- unlink
- unplug
- upgrade
- upgrade-interactive / upgradeInteractive
- version
- versions
- why
- workspace
- workspaces
Run `yarn help COMMAND` for more information on specific commands.
Visit https://yarnpkg.com/en/docs/cli/ to learn more about Yarn.
通过帮助信息,一般可以了解该工具有哪些命令,哪些选项了。
1、初始化一个新项目
yarn init
一般会生成一个package.json文件,默认情况下,文件如下:
{
"name": "yarn",
"version": "1.0.0",
"main": "index.js",
"license": "MIT"
}
yarn使用package.json文件来标识每个包,其含义看配置文档。
2、安装所有依赖项
yarn
yarn install
会多出来一个node_modules目录(用来存在后期安装的依赖文件)和yarn.lock文件。yarn.lock文件是用来固化依赖,提交代码时,也应该一同提交。
3、添加依赖项
一次性也可以添加多个依赖项
yarn add [package]
yarn add [package1] [package2] [package3]
yarn add [package]@[version]
yarn add [package]@[tag]
不指定版本,一般安装的是最新版本,以安装jquery模块为例
安装好以后,node_modules和package.json都有体现
可以去https://www.npmjs.com/搜索查询jquery,查看可用历史版本
注意:一个项目相同模块,只会存在一个。例如jquery3.7.1和jquery3.5.0在一个项目不可能同时存在。
添加不同类型依赖项
dependencies,普通依赖项,运行项目时需要用到的依赖。不管是在开发还是生产都需要用得到,比如jquery
# 普通依赖项用--save
yarn add jquery --save
devDependencies,开发依赖项。开发时使用到的依赖,生产不需要,如Babel(ES6转ES5)
# 开发依赖项,--save-dev
yarn add jquery --save-dev
peerDependencies,对等依赖,发布依赖包时使用。
optionalDependencies,可选依赖。可选的依赖包,如果此包安装失败,Yarn依然会提示安装进程成功。
bundledDependencies,要打包的依赖/捆绑依赖。
4、删除依赖项
yarn remove [package]
小结:
这个博客主要记录测试添加、更新、删除依赖项,依赖项的操作在项目中的变化和体现,yarn包管理器其它操作同npm。