Top Level Namespace

Defined Under Namespace

Modules: Shakapacker

Constant Summary collapse

Webpacker =
Shakapacker

Instance Method Summary collapse

Instance Method Details

#add_dependencies(dependencies, type) ⇒ Object



90
91
92
93
94
95
96
97
98
99
# File 'lib/install/template.rb', line 90

def add_dependencies(dependencies, type)
  return package_json.manager.add!(dependencies, type: type) if Shakapacker::Utils::Misc.use_package_json_gem

  # TODO: check that run actually errors
  run("yarn add #{dependencies.join(" ")}") if type == :production
  run("yarn add --dev #{dependencies.join(" ")}") if type == :dev
rescue PackageJson::Error
  say "Shakapacker installation failed 😭 See above for details.", :red
  exit 1
end

#fetch_peer_dependenciesObject



101
102
103
104
105
106
107
108
# File 'lib/install/template.rb', line 101

def fetch_peer_dependencies
  if Shakapacker::Utils::Misc.use_package_json_gem
    return PackageJson.read("#{__dir__}/../../").fetch("peerDependencies")
  end

  package_json = File.read("#{__dir__}/../../package.json")
  JSON.parse(package_json)["peerDependencies"]
end

#native_install_commandObject



57
58
59
60
61
# File 'lib/install/template.rb', line 57

def native_install_command
  return "bin/yarn" unless Shakapacker::Utils::Misc.use_package_json_gem

  package_json.manager.native_install_command.join(" ")
end

#package_jsonObject



45
46
47
48
49
50
51
52
53
# File 'lib/install/template.rb', line 45

def package_json
  if @package_json.nil?
    Shakapacker::Utils::Misc.require_package_json_gem

    @package_json = PackageJson.read
  end

  @package_json
end