- name: 'Remove any node modules' file: path: '{{ remote_dir }}/node_modules' state: absent - vars: # sample: node-v8.2.0-linux-x64.tar.xz node_path: '{{ remote_dir }}/{{ nodejs_path }}/bin' package: 'iconv-lite' block: - shell: npm --version environment: PATH: '{{ node_path }}:{{ ansible_env.PATH }}' register: npm_version - debug: var: npm_version.stdout - name: 'Install simple package without dependency' npm: path: '{{ remote_dir }}' executable: '{{ node_path }}/npm' state: present name: '{{ package }}' environment: PATH: '{{ node_path }}:{{ ansible_env.PATH }}' register: npm_install - assert: that: - npm_install is success - npm_install is changed - name: 'Reinstall simple package without dependency' npm: path: '{{ remote_dir }}' executable: '{{ node_path }}/npm' state: present name: '{{ package }}' environment: PATH: '{{ node_path }}:{{ ansible_env.PATH }}' register: npm_reinstall - name: Check there is no change assert: that: - npm_reinstall is success - not (npm_reinstall is changed) - name: 'Manually delete package' file: path: '{{ remote_dir }}/node_modules/{{ package }}' state: absent - name: 'reinstall simple package' npm: path: '{{ remote_dir }}' executable: '{{ node_path }}/npm' state: present name: '{{ package }}' environment: PATH: '{{ node_path }}:{{ ansible_env.PATH }}' register: npm_fix_install - name: Check result is changed and successful assert: that: - npm_fix_install is success - npm_fix_install is changed