41 lines
1.1 KiB
Ruby
41 lines
1.1 KiB
Ruby
![]() |
|
||
|
namespace :yarn do
|
||
|
desc 'Ensure Yarn is installed'
|
||
|
task :available do
|
||
|
unless system('yarn --version', out: File::NULL)
|
||
|
warn(
|
||
|
'Error: Yarn executable was not detected in the system.'.color(:red),
|
||
|
'Download Yarn at https://yarnpkg.com/en/docs/install'.color(:green)
|
||
|
)
|
||
|
abort
|
||
|
end
|
||
|
end
|
||
|
|
||
|
desc 'Ensure Node dependencies are installed'
|
||
|
task check: ['yarn:available'] do
|
||
|
unless system('yarn check --ignore-engines', out: File::NULL)
|
||
|
warn(
|
||
|
'Error: You have unmet dependencies. (`yarn check` command failed)'.color(:red),
|
||
|
'Run `yarn install` to install missing modules.'.color(:green)
|
||
|
)
|
||
|
abort
|
||
|
end
|
||
|
end
|
||
|
|
||
|
desc 'Install Node dependencies with Yarn'
|
||
|
task install: ['yarn:available'] do
|
||
|
unless system('yarn install --force --pure-lockfile --ignore-engines')
|
||
|
abort 'Error: Unable to install node modules.'.color(:red)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
desc 'Remove Node dependencies'
|
||
|
task :clobber do
|
||
|
warn 'Purging ./node_modules directory'.color(:red)
|
||
|
FileUtils.rm_rf 'node_modules'
|
||
|
end
|
||
|
end
|
||
|
|
||
|
desc 'Install Node dependencies with Yarn'
|
||
|
task yarn: ['yarn:install']
|