# yarn – Manage node.js packages with Yarn

New in version 2.6.

- Synopsis
- Requirements
- Parameters
- Examples
- Return Values
- Status

## Synopsis

- Manage node.js packages with the Yarn package manager (https://yarnpkg.com/)

## Requirements

The below requirements are needed on the host that executes this module.

- Yarn installed in bin path (typically /usr/local/bin)

## Parameters

Parameter | Choices/Defaults | Comments
--- | --- | ---
executable - |  | The executable location for yarn.

global
boolean

Choices:
- no ←
- yes

Install the node.js library globally

ignore_scripts
boolean

Choices:
- no ←
- yes

Use the --ignore-scripts flag when installing.

name - |  | The name of a node.js library to install If omitted all packages in package.json are installed.
path - |  | The base path where Node.js libraries will be installed. This is where the node_modules folder lives.

production
boolean

Choices:
- no ←
- yes

Install dependencies in production mode.
Yarn will ignore any dependencies under devDependencies in package.json

registry - |  | The registry to install modules from.

state
-

Choices:
- present ←
- absent
- latest

Installation state of the named node.js library
If absent is selected, a name option must be provided

version - |  | The version of the library to be installed. Must be in semver format. If "latest" is desired, use "state" arg instead

## Examples

    - name: Install "imagemin" node.js package.
      yarn:
        name: imagemin
        path: /app/location

    - name: Install "imagemin" node.js package on version 5.3.1
      yarn:
        name: imagemin
        version: '5.3.1'
        path: /app/location

    - name: Install "imagemin" node.js package globally.
      yarn:
        name: imagemin
        global: yes

    - name: Remove the globally-installed package "imagemin".
      yarn:
        name: imagemin
        global: yes
        state: absent

    - name: Install "imagemin" node.js package from custom registry.
      yarn:
        name: imagemin
        registry: 'http://registry.mysite.com'

    - name: Install packages based on package.json.
      yarn:
        path: /app/location

    - name: Update all packages in package.json to their latest version.
      yarn:
        path: /app/location
        state: latest

## Return Values

Common return values are documented here, the following are the fields unique to this module:

Key | Returned | Description
--- | --- | ---
changed boolean | always | Whether Yarn changed any package data Sample: True
invocation dictionary | success | Parameters and values used during execution Sample: {'module_args': {'executable': None, 'globally': False, 'ignore_scripts': False, 'name': None, 'path': '/some/path/folder', 'production': False, 'registry': None, 'state': 'present', 'version': None}}
msg string | failure | Provides an error message if Yarn syntax was incorrect Sample: Package must be explicitly named when uninstalling.
out string | always | Output generated from Yarn with emojis removed. Sample: yarn add v0.16.1[1/4] Resolving packages...[2/4] Fetching packages...[3/4] Linking dependencies...[4/4] Building fresh packages...success Saved lockfile.success Saved 1 new dependency..left-pad@1.1.3 Done in 0.59s.

## Status

- This module is not guaranteed to have a backwards compatible interface. [preview]
- This module is maintained by the Ansible Community. [community]

### Authors

- David Gunter (@verkaufer)
- Chris Hoffman (@chrishoffman), creator of NPM Ansible module)

Hint

If you notice any issues in this documentation, you can edit this document to improve it.