module Jekyll::Esm::Managers::Npm

Public Class Methods

add(package:, site:) click to toggle source
# File lib/jekyll-esm/managers/npm.rb, line 18
def self.add(package:, site:)
  stdout, stderr, status = Open3.capture3(
    "npm install #{package}",
    chdir: File.expand_path(File.join(site.source, '/'))
  )

  if site.config.dig('esm', 'strict')
    runtime_error = stdout =~ /ERROR in|SyntaxError/

    raise Error, stderr if stderr.size > 0
    raise Error, stdout if !runtime_error.nil?
  end
end
dist(config) click to toggle source
# File lib/jekyll-esm/managers/npm.rb, line 14
def self.dist(config)
  config.dig('esm', 'dist') || location(config) || 'node_modules'
end
location(config) click to toggle source
# File lib/jekyll-esm/managers/npm.rb, line 10
def self.location(config)
  config.dig('esm', 'npm', 'dir') || 'node_modules'
end
remove(packages:, site:) click to toggle source
# File lib/jekyll-esm/managers/npm.rb, line 32
def self.remove(packages:, site:)
  stdout, stderr, status = Open3.capture3(
    "npm uninstall #{packages}",
    chdir: File.expand_path(File.join(site.source, '/'))
  )

  if site.config.dig('esm', 'strict')
    runtime_error = stdout =~ /ERROR in|SyntaxError/

    raise Error, stderr if stderr.size > 0
    raise Error, stdout if !runtime_error.nil?
  end
end