Class: Lively::Electron::Packager::Pnpm

Inherits:
Generic
  • Object
show all
Defined in:
lib/lively/electron/packager/pnpm.rb

Overview

A pnpm (‘pnpm-lock.yaml`) project layout with the corresponding `pnpm` command line.

Constant Summary

Constants inherited from Generic

Generic::ELECTRON_VERSION_RANGE

Instance Attribute Summary

Attributes inherited from Generic

#Semver range for the `electron` dependency written by {setup!}.

Instance Method Summary collapse

Methods inherited from Generic

#electron_executable_path, #install_hint, #run_install_in!

Instance Method Details

#install_commandObject



21
22
23
# File 'lib/lively/electron/packager/pnpm.rb', line 21

def install_command
	%w[pnpm install]
end

#setup!(package_root) ⇒ Object

Creates a ‘package.json` and installs Generic::ELECTRON_VERSION_RANGE when no manifest exists yet; see Generic#setup!. Also writes the `onlyBuiltDependencies` policy required by pnpm 10+.



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/lively/electron/packager/pnpm.rb', line 28

def setup!(package_root)
	manifest = File.join(File.expand_path(package_root), "package.json")
	return if File.file?(manifest)
	
	# pnpm 10 requires --bare and --init-package-manager (see `pnpm help init`):
	run_subprocess!(%w[pnpm init --bare --init-package-manager], package_root, "pnpm init")
	run_subprocess!(
		[
			"pnpm", "add",
			"electron@#{ELECTRON_VERSION_RANGE}"
		],
		package_root,
		"pnpm add electron"
	)
	merge_electron_postinstall_policy!(package_root)
end

#to_sObject



18
# File 'lib/lively/electron/packager/pnpm.rb', line 18

def to_s = "pnpm"