未验证 提交 3101a413 编写于 作者: E Eileen M. Uchitelle 提交者: GitHub

Merge pull request #34071 from y-yagi/skip_webpacker_install

Add `skip-webpack-install` option
......@@ -399,6 +399,10 @@ def spring_install?
!options[:skip_spring] && !options.dev? && Process.respond_to?(:fork) && !RUBY_PLATFORM.include?("cygwin")
end
def webpack_install?
!(options[:skip_javascript] || options[:skip_webpack_install])
end
def depends_on_system_test?
!(options[:skip_system_test] || options[:skip_test] || options[:api])
end
......@@ -420,7 +424,7 @@ def run_bundle
end
def run_webpack
unless options[:skip_javascript]
if webpack_install?
rails_command "webpacker:install"
rails_command "webpacker:install:#{options[:webpack]}" if options[:webpack] && options[:webpack] != "webpack"
end
......
......@@ -261,6 +261,9 @@ class AppGenerator < AppBase # :nodoc:
class_option :webpack, type: :string, default: nil,
desc: "Preconfigure Webpack with a particular framework (options: #{WEBPACKS.join('/')})"
class_option :skip_webpack_install, type: :boolean, default: false,
desc: "Don't run Webpack install"
def initialize(*args)
super
......
......@@ -98,6 +98,7 @@ def generate_test_dummy(force = false)
opts[:skip_listen] = true
opts[:skip_git] = true
opts[:skip_turbolinks] = true
opts[:skip_webpack_install] = true
opts[:dummy_app] = true
invoke Rails::Generators::AppGenerator,
......
......@@ -68,7 +68,7 @@ def run_generator(args = default_arguments, config = {})
capture(:stdout) do
args += ["--skip-bundle"] unless args.include? "--dev"
args |= ["--skip-bootsnap"] unless args.include? "--no-skip-bootsnap"
args |= ["--skip-javascript"] unless args.include? "--no-skip-javascript"
args |= ["--skip-webpack-install"] unless args.include? "--no-skip-webpack-install"
generator_class.start(args, config.reverse_merge(destination_root: destination_root))
end
......
......@@ -113,7 +113,7 @@ def test_skip_bundle
end
def test_assets
run_generator [destination_root, "--no-skip-javascript"]
run_generator
assert_file("app/views/layouts/application.html.erb", /stylesheet_link_tag\s+'application', media: 'all', 'data-turbolinks-track': 'reload'/)
assert_file("app/views/layouts/application.html.erb", /javascript_pack_tag\s+'application', 'data-turbolinks-track': 'reload'/)
......@@ -825,8 +825,22 @@ def test_webpack_option_with_js_framework
assert_gem "webpacker"
end
def test_skip_webpack_install
command_check = -> command do
if command == "webpacker:install"
assert false, "webpacker:install expected not to be called."
end
end
generator([destination_root], skip_webpack_install: true).stub(:rails_command, command_check) do
quietly { generator.invoke_all }
end
assert_gem "webpacker"
end
def test_generator_if_skip_turbolinks_is_given
run_generator [destination_root, "--skip-turbolinks", "--no-skip-javascript"]
run_generator [destination_root, "--skip-turbolinks"]
assert_no_gem "turbolinks"
assert_file "app/views/layouts/application.html.erb" do |content|
......
......@@ -27,7 +27,7 @@ def application_path
end
def test_skeleton_is_created
run_generator [destination_root, "--no-skip-javascript"]
run_generator
default_files.each { |path| assert_file path }
end
......@@ -196,7 +196,7 @@ def test_generator_if_skip_active_record_is_given
end
def test_generator_for_active_storage
run_generator [destination_root, "--no-skip-javascript"]
run_generator
unless generator_class.name == "Rails::Generators::PluginGenerator"
assert_file "#{application_path}/app/javascript/packs/application.js" do |content|
......@@ -226,7 +226,7 @@ def test_generator_for_active_storage
end
def test_generator_if_skip_active_storage_is_given
run_generator [destination_root, "--skip-active-storage", "--no-skip-javascript"]
run_generator [destination_root, "--skip-active-storage"]
assert_file "#{application_path}/config/application.rb", /#\s+require\s+["']active_storage\/engine["']/
......@@ -256,7 +256,7 @@ def test_generator_if_skip_active_storage_is_given
end
def test_generator_does_not_generate_active_storage_contents_if_skip_active_record_is_given
run_generator [destination_root, "--skip-active-record", "--no-skip-javascript"]
run_generator [destination_root, "--skip-active-record"]
assert_file "#{application_path}/config/application.rb", /#\s+require\s+["']active_storage\/engine["']/
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册