module Jekyll::Webpack
Constants
- VERSION
Public Class Methods
build(site)
click to toggle source
# File lib/jekyll/webpack.rb, line 16 def self.build(site) only_in = site.config.dig('webpack', 'only_in') debounce = site.config.dig('webpack', 'debounce') site_dest = site.dest webpack_dist_path = File.expand_path('dist', site.dest) if only_in entries = [] array_or_scalar(only_in) { |entry| entries << site_dest.end_with?(entry) } return unless entries.any? true end if debounce @@webpack_debouncers[site.dest] = Debouncer.new(site, debounce) unless @@webpack_debouncers[site.dest] @@webpack_debouncers[site.dest].build { webpack_exec(site_dest) } else webpack_exec(site_dest) end cleanup(site) end
cleanup(site)
click to toggle source
# File lib/jekyll/webpack.rb, line 51 def self.cleanup(site) cleanup_files = site.config.dig('webpack', 'cleanup_files') if cleanup_files array_or_scalar(cleanup_files) do |dest_for_clean| path = File.expand_path(dest_for_clean, site.dest) if File.exists?(path) || Dir.exists?(path) FileUtils.rm_rf(path) end end end end
webpack_exec(site_dest)
click to toggle source
# File lib/jekyll/webpack.rb, line 39 def self.webpack_exec(site_dest) stdout, stderr, status = Open3.capture3( "../node_modules/.bin/webpack", chdir: File.expand_path(site_dest) ) runtime_error = stdout =~ /ERROR in|SyntaxError/ raise Error, stderr if stderr.size > 0 raise Error, stdout if !runtime_error.nil? end
Private Class Methods
array_or_scalar(value) { |entry| ... }
click to toggle source
# File lib/jekyll/webpack.rb, line 67 def self.array_or_scalar(value) if Array === value value.each do |entry| yield entry end else yield value end end