--- - include: setup.yml - name: Define nodejs_install_npm_user set_fact: nodejs_install_npm_user: "{{ ansible_user | default(lookup('env', 'USER')) }}" when: nodejs_install_npm_user is not defined - name: Create npm global directory become: yes file: path: "{{ npm_config_prefix }}" owner: "{{ nodejs_install_npm_user }}" group: "{{ nodejs_install_npm_user }}" state: directory - name: Add npm_config_prefix bin directory to global $PATH. become: yes template: src: npm.sh.j2 dest: /etc/profile.d/npm.sh mode: 0644 - name: Ensure npm global packages are installed. become: yes npm: name: "{{ item.name | default(item) }}" version: "{{ item.version | default('latest') }}" global: true state: latest environment: NPM_CONFIG_PREFIX: "{{ npm_config_prefix }}" NODE_PATH: "{{ npm_config_prefix }}/lib/node_modules" NPM_CONFIG_UNSAFE_PERM: "{{ npm_config_unsafe_perm }}" with_items: "{{ nodejs_npm_global_packages }}" tags: ['skip_ansible_lint'] - name: Install packages defined in a given package.json. npm: path: "{{ nodejs_package_json_path }}" when: nodejs_package_json_path is defined and nodejs_package_json_path