Class: Railpack::NpmBasedBundler

Inherits:
Bundler
  • Object
show all
Defined in:
lib/railpack/bundler.rb

Overview

Intermediate base class for NPM-based bundlers (esbuild, rollup, webpack)

Direct Known Subclasses

EsbuildBundler, RollupBundler, WebpackBundler

Instance Attribute Summary

Attributes inherited from Bundler

#config

Instance Method Summary collapse

Methods inherited from Bundler

#base_command, #build!, #commands, #default_commands, #initialize, #name, #watch

Constructor Details

This class inherits a constructor from Railpack::Bundler

Instance Method Details

#add(*packages) ⇒ Object



157
158
159
# File 'lib/railpack/bundler.rb', line 157

def add(*packages)
  execute([package_manager, "install", *packages])
end

#exec(*args) ⇒ Object



165
166
167
# File 'lib/railpack/bundler.rb', line 165

def exec(*args)
  execute([package_manager, "exec", *args])
end

#install!(args = []) ⇒ Object



153
154
155
# File 'lib/railpack/bundler.rb', line 153

def install!(args = [])
  execute([package_manager, "install", *args])
end

#installed? ⇒ Boolean

Returns:

  • (Boolean)


173
174
175
# File 'lib/railpack/bundler.rb', line 173

def installed?
  system("#{commands[:version]} > /dev/null 2>&1")
end

#package_manager ⇒ Object



149
150
151
# File 'lib/railpack/bundler.rb', line 149

def package_manager
  @package_manager ||= detect_package_manager
end

#remove(*packages) ⇒ Object



161
162
163
# File 'lib/railpack/bundler.rb', line 161

def remove(*packages)
  execute([package_manager, "uninstall", *packages])
end

#version ⇒ Object



169
170
171
# File 'lib/railpack/bundler.rb', line 169

def version
  `#{commands[:version]}`.strip
end