Bump webpacker from 3.5.5 to 4.0.2 (#10277)
Bumps [webpacker](https://github.com/rails/webpacker) from 3.5.5 to 4.0.2. - [Release notes](https://github.com/rails/webpacker/releases) - [Changelog](https://github.com/rails/webpacker/blob/master/CHANGELOG.md) - [Commits](https://github.com/rails/webpacker/compare/v3.5.5...v4.0.2) Signed-off-by: dependabot[bot] <support@dependabot.com> Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>
This commit is contained in:
		
					parent
					
						
							
								5a9978f02a
							
						
					
				
			
			
				commit
				
					
						8347479f5d
					
				
			
		
					 46 changed files with 1655 additions and 1651 deletions
				
			
		
							
								
								
									
										2
									
								
								Gemfile
									
										
									
									
									
								
							
							
						
						
									
										2
									
								
								Gemfile
									
										
									
									
									
								
							|  | @ -86,7 +86,7 @@ gem 'tty-command', '~> 0.8', require: false | ||||||
| gem 'tty-prompt', '~> 0.18', require: false | gem 'tty-prompt', '~> 0.18', require: false | ||||||
| gem 'twitter-text', '~> 1.14' | gem 'twitter-text', '~> 1.14' | ||||||
| gem 'tzinfo-data', '~> 1.2018' | gem 'tzinfo-data', '~> 1.2018' | ||||||
| gem 'webpacker', '~> 3.5' | gem 'webpacker', '~> 4.0' | ||||||
| gem 'webpush' | gem 'webpush' | ||||||
| 
 | 
 | ||||||
| gem 'json-ld', '~> 3.0' | gem 'json-ld', '~> 3.0' | ||||||
|  |  | ||||||
|  | @ -433,7 +433,7 @@ GEM | ||||||
|     rack-cors (1.0.2) |     rack-cors (1.0.2) | ||||||
|     rack-protection (2.0.5) |     rack-protection (2.0.5) | ||||||
|       rack |       rack | ||||||
|     rack-proxy (0.6.4) |     rack-proxy (0.6.5) | ||||||
|       rack |       rack | ||||||
|     rack-test (1.1.0) |     rack-test (1.1.0) | ||||||
|       rack (>= 1.0, < 3) |       rack (>= 1.0, < 3) | ||||||
|  | @ -640,7 +640,7 @@ GEM | ||||||
|       addressable (>= 2.3.6) |       addressable (>= 2.3.6) | ||||||
|       crack (>= 0.3.2) |       crack (>= 0.3.2) | ||||||
|       hashdiff |       hashdiff | ||||||
|     webpacker (3.5.5) |     webpacker (4.0.2) | ||||||
|       activesupport (>= 4.2) |       activesupport (>= 4.2) | ||||||
|       rack-proxy (>= 0.6.1) |       rack-proxy (>= 0.6.1) | ||||||
|       railties (>= 4.2) |       railties (>= 4.2) | ||||||
|  | @ -772,7 +772,7 @@ DEPENDENCIES | ||||||
|   twitter-text (~> 1.14) |   twitter-text (~> 1.14) | ||||||
|   tzinfo-data (~> 1.2018) |   tzinfo-data (~> 1.2018) | ||||||
|   webmock (~> 3.5) |   webmock (~> 3.5) | ||||||
|   webpacker (~> 3.5) |   webpacker (~> 4.0) | ||||||
|   webpush |   webpush | ||||||
| 
 | 
 | ||||||
| RUBY VERSION | RUBY VERSION | ||||||
|  |  | ||||||
|  | @ -32,7 +32,7 @@ class REST::InstanceSerializer < ActiveModel::Serializer | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|   def thumbnail |   def thumbnail | ||||||
|     instance_presenter.thumbnail ? full_asset_url(instance_presenter.thumbnail.file.url) : full_pack_url('preview.jpg') |     instance_presenter.thumbnail ? full_asset_url(instance_presenter.thumbnail.file.url) : full_pack_url('media/images/preview.jpg') | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|   def stats |   def stats | ||||||
|  |  | ||||||
|  | @ -11,7 +11,7 @@ class RSS::AccountSerializer | ||||||
|     builder.title("#{display_name(account)} (@#{account.local_username_and_domain})") |     builder.title("#{display_name(account)} (@#{account.local_username_and_domain})") | ||||||
|            .description(account_description(account)) |            .description(account_description(account)) | ||||||
|            .link(TagManager.instance.url_for(account)) |            .link(TagManager.instance.url_for(account)) | ||||||
|            .logo(full_asset_url(asset_pack_path('logo.svg'))) |            .logo(full_pack_url('media/images/logo.svg')) | ||||||
|            .accent_color('2b90d9') |            .accent_color('2b90d9') | ||||||
| 
 | 
 | ||||||
|     builder.image(full_asset_url(account.avatar.url(:original))) if account.avatar? |     builder.image(full_asset_url(account.avatar.url(:original))) if account.avatar? | ||||||
|  |  | ||||||
|  | @ -12,7 +12,7 @@ class RSS::TagSerializer | ||||||
|     builder.title("##{tag.name}") |     builder.title("##{tag.name}") | ||||||
|            .description(strip_tags(I18n.t('about.about_hashtag_html', hashtag: tag.name))) |            .description(strip_tags(I18n.t('about.about_hashtag_html', hashtag: tag.name))) | ||||||
|            .link(tag_url(tag)) |            .link(tag_url(tag)) | ||||||
|            .logo(full_asset_url(asset_pack_path('logo.svg'))) |            .logo(full_pack_url('media/images/logo.svg')) | ||||||
|            .accent_color('2b90d9') |            .accent_color('2b90d9') | ||||||
| 
 | 
 | ||||||
|     statuses.each do |status| |     statuses.each do |status| | ||||||
|  |  | ||||||
|  | @ -9,7 +9,7 @@ | ||||||
|   .column-0 |   .column-0 | ||||||
|     .public-account-header.public-account-header--no-bar |     .public-account-header.public-account-header--no-bar | ||||||
|       .public-account-header__image |       .public-account-header__image | ||||||
|         = image_tag @instance_presenter.hero&.file&.url || @instance_presenter.thumbnail&.file&.url || asset_pack_path('preview.jpg'), alt: @instance_presenter.site_title, class: 'parallax' |         = image_tag @instance_presenter.hero&.file&.url || @instance_presenter.thumbnail&.file&.url || asset_pack_path('media/images/preview.jpg'), alt: @instance_presenter.site_title, class: 'parallax' | ||||||
| 
 | 
 | ||||||
|   .column-1 |   .column-1 | ||||||
|     .landing-page__call-to-action{ dir: 'ltr' } |     .landing-page__call-to-action{ dir: 'ltr' } | ||||||
|  | @ -25,7 +25,7 @@ | ||||||
|             %span= t 'about.status_count_after', count: @instance_presenter.status_count |             %span= t 'about.status_count_after', count: @instance_presenter.status_count | ||||||
|         .row__mascot |         .row__mascot | ||||||
|           .landing-page__mascot |           .landing-page__mascot | ||||||
|             = image_tag @instance_presenter.mascot&.file&.url || asset_pack_path('elephant_ui_plane.svg'), alt: '' |             = image_tag @instance_presenter.mascot&.file&.url || asset_pack_path('media/images/elephant_ui_plane.svg'), alt: '' | ||||||
| 
 | 
 | ||||||
|   .column-2 |   .column-2 | ||||||
|     .landing-page__information.contact-widget |     .landing-page__information.contact-widget | ||||||
|  |  | ||||||
|  | @ -8,7 +8,7 @@ | ||||||
| .landing | .landing | ||||||
|   .landing__brand |   .landing__brand | ||||||
|     = link_to root_url, class: 'brand' do |     = link_to root_url, class: 'brand' do | ||||||
|       = image_tag asset_pack_path('logo_full.svg'), alt: 'Mastodon' |       = image_pack_tag 'logo_full.svg', alt: 'Mastodon' | ||||||
|       %span.brand__tagline=t 'about.tagline' |       %span.brand__tagline=t 'about.tagline' | ||||||
| 
 | 
 | ||||||
|   .landing__grid |   .landing__grid | ||||||
|  | @ -48,7 +48,7 @@ | ||||||
| 
 | 
 | ||||||
|       .hero-widget |       .hero-widget | ||||||
|         .hero-widget__img |         .hero-widget__img | ||||||
|           = image_tag @instance_presenter.hero&.file&.url || @instance_presenter.thumbnail&.file&.url || asset_pack_path('preview.jpg'), alt: @instance_presenter.site_title |           = image_tag @instance_presenter.hero&.file&.url || @instance_presenter.thumbnail&.file&.url || asset_pack_path('media/images/preview.jpg'), alt: @instance_presenter.site_title | ||||||
| 
 | 
 | ||||||
|         - if @instance_presenter.site_short_description.present? |         - if @instance_presenter.site_short_description.present? | ||||||
|           .hero-widget__text |           .hero-widget__text | ||||||
|  |  | ||||||
|  | @ -1,6 +1,6 @@ | ||||||
| .hero-widget | .hero-widget | ||||||
|   .hero-widget__img |   .hero-widget__img | ||||||
|     = image_tag @instance_presenter.hero&.file&.url || @instance_presenter.thumbnail&.file&.url || asset_pack_path('preview.jpg'), alt: @instance_presenter.site_title |     = image_tag @instance_presenter.hero&.file&.url || @instance_presenter.thumbnail&.file&.url || asset_pack_path('media/images/preview.jpg'), alt: @instance_presenter.site_title | ||||||
| 
 | 
 | ||||||
|   .hero-widget__text |   .hero-widget__text | ||||||
|     %p= @instance_presenter.site_short_description.html_safe.presence || @instance_presenter.site_description.html_safe.presence || t('about.generic_description', domain: site_hostname) |     %p= @instance_presenter.site_short_description.html_safe.presence || @instance_presenter.site_description.html_safe.presence || t('about.generic_description', domain: site_hostname) | ||||||
|  |  | ||||||
|  | @ -11,7 +11,7 @@ | ||||||
| 
 | 
 | ||||||
| .app-holder#mastodon{ data: { props: Oj.dump(default_props) } } | .app-holder#mastodon{ data: { props: Oj.dump(default_props) } } | ||||||
|   %noscript |   %noscript | ||||||
|     = image_tag asset_pack_path('logo.svg'), alt: 'Mastodon' |     = image_pack_tag 'logo.svg', alt: 'Mastodon' | ||||||
| 
 | 
 | ||||||
|     %div |     %div | ||||||
|       = t('errors.noscript_html', apps_path: 'https://joinmastodon.org/apps') |       = t('errors.noscript_html', apps_path: 'https://joinmastodon.org/apps') | ||||||
|  |  | ||||||
|  | @ -6,7 +6,7 @@ | ||||||
|     .sidebar-wrapper |     .sidebar-wrapper | ||||||
|       .sidebar |       .sidebar | ||||||
|         = link_to root_path do |         = link_to root_path do | ||||||
|           = image_tag asset_pack_path('logo.svg'), class: 'logo', alt: 'Mastodon' |           = image_pack_tag 'logo.svg', class: 'logo', alt: 'Mastodon' | ||||||
| 
 | 
 | ||||||
|         = render_navigation |         = render_navigation | ||||||
|     .content-wrapper |     .content-wrapper | ||||||
|  |  | ||||||
|  | @ -6,7 +6,7 @@ | ||||||
|     .logo-container |     .logo-container | ||||||
|       %h1 |       %h1 | ||||||
|         = link_to root_path do |         = link_to root_path do | ||||||
|           = image_tag asset_pack_path('logo_full.svg'), alt: 'Mastodon' |           = image_pack_tag 'logo_full.svg', alt: 'Mastodon' | ||||||
| 
 | 
 | ||||||
|     .form-container |     .form-container | ||||||
|       = render 'flashes' |       = render 'flashes' | ||||||
|  |  | ||||||
|  | @ -24,7 +24,7 @@ | ||||||
|                               %tr |                               %tr | ||||||
|                                 %td.column-cell |                                 %td.column-cell | ||||||
|                                   = link_to root_url do |                                   = link_to root_url do | ||||||
|                                     = image_tag full_pack_url('logo_full.png'), alt: 'Mastodon', height: 34, class: 'logo' |                                     = image_tag full_pack_url('media/images/mailer/logo_full.png'), alt: 'Mastodon', height: 34, class: 'logo' | ||||||
| 
 | 
 | ||||||
|     = yield |     = yield | ||||||
| 
 | 
 | ||||||
|  | @ -49,4 +49,4 @@ | ||||||
|                                 %p= link_to t('application_mailer.notification_preferences'), settings_notifications_url |                                 %p= link_to t('application_mailer.notification_preferences'), settings_notifications_url | ||||||
|                               %td.column-cell.text-right |                               %td.column-cell.text-right | ||||||
|                                 = link_to root_url do |                                 = link_to root_url do | ||||||
|                                   = image_tag full_pack_url('logo_transparent.png'), alt: 'Mastodon', height: 24 |                                   = image_tag full_pack_url('media/images/mailer/logo_transparent.png'), alt: 'Mastodon', height: 24 | ||||||
|  |  | ||||||
|  | @ -8,7 +8,7 @@ | ||||||
|         %nav.header |         %nav.header | ||||||
|           .nav-left |           .nav-left | ||||||
|             = link_to root_url, class: 'brand' do |             = link_to root_url, class: 'brand' do | ||||||
|               = image_tag asset_pack_path('logo_full.svg'), alt: 'Mastodon' |               = image_pack_tag 'logo_full.svg', alt: 'Mastodon' | ||||||
| 
 | 
 | ||||||
|             = link_to t('directories.directory'), explore_path, class: 'nav-link optional' if Setting.profile_directory |             = link_to t('directories.directory'), explore_path, class: 'nav-link optional' if Setting.profile_directory | ||||||
|             = link_to t('about.about_this'), about_more_path, class: 'nav-link optional' |             = link_to t('about.about_this'), about_more_path, class: 'nav-link optional' | ||||||
|  |  | ||||||
|  | @ -17,7 +17,7 @@ | ||||||
|                                 %tbody |                                 %tbody | ||||||
|                                   %tr |                                   %tr | ||||||
|                                     %td |                                     %td | ||||||
|                                       = image_tag full_pack_url('icon_grade.png'), alt:'' |                                       = image_tag full_pack_url('media/images/mailer/icon_grade.png'), alt:'' | ||||||
| 
 | 
 | ||||||
|                               %h1= t 'notification_mailer.favourite.title' |                               %h1= t 'notification_mailer.favourite.title' | ||||||
|                               %p.lead= t('notification_mailer.favourite.body', name: @account.acct) |                               %p.lead= t('notification_mailer.favourite.body', name: @account.acct) | ||||||
|  |  | ||||||
|  | @ -17,7 +17,7 @@ | ||||||
|                                 %tbody |                                 %tbody | ||||||
|                                   %tr |                                   %tr | ||||||
|                                     %td |                                     %td | ||||||
|                                       = image_tag full_pack_url('icon_person_add.png'), alt: '' |                                       = image_tag full_pack_url('media/images/mailer/icon_person_add.png'), alt: '' | ||||||
| 
 | 
 | ||||||
|                               %h1= t 'notification_mailer.follow.title' |                               %h1= t 'notification_mailer.follow.title' | ||||||
|                               %p.lead= t('notification_mailer.follow.body', name: @account.acct) |                               %p.lead= t('notification_mailer.follow.body', name: @account.acct) | ||||||
|  |  | ||||||
|  | @ -17,7 +17,7 @@ | ||||||
|                                 %tbody |                                 %tbody | ||||||
|                                   %tr |                                   %tr | ||||||
|                                     %td |                                     %td | ||||||
|                                       = image_tag full_pack_url('icon_person_add.png'), alt: '' |                                       = image_tag full_pack_url('media/images/mailer/icon_person_add.png'), alt: '' | ||||||
| 
 | 
 | ||||||
|                               %h1= t 'notification_mailer.follow_request.title' |                               %h1= t 'notification_mailer.follow_request.title' | ||||||
|                               %p.lead= t('notification_mailer.follow_request.body', name: @account.acct) |                               %p.lead= t('notification_mailer.follow_request.body', name: @account.acct) | ||||||
|  |  | ||||||
|  | @ -17,7 +17,7 @@ | ||||||
|                                 %tbody |                                 %tbody | ||||||
|                                   %tr |                                   %tr | ||||||
|                                     %td |                                     %td | ||||||
|                                       = image_tag full_pack_url('icon_reply.png'), alt: '' |                                       = image_tag full_pack_url('media/images/mailer/icon_reply.png'), alt: '' | ||||||
| 
 | 
 | ||||||
|                               %h1= t 'notification_mailer.mention.title' |                               %h1= t 'notification_mailer.mention.title' | ||||||
|                               %p.lead= t('notification_mailer.mention.body', name: @status.account.acct) |                               %p.lead= t('notification_mailer.mention.body', name: @status.account.acct) | ||||||
|  |  | ||||||
|  | @ -17,7 +17,7 @@ | ||||||
|                                 %tbody |                                 %tbody | ||||||
|                                   %tr |                                   %tr | ||||||
|                                     %td |                                     %td | ||||||
|                                       = image_tag full_pack_url('icon_cached.png'), alt: '' |                                       = image_tag full_pack_url('media/images/mailer/icon_cached.png'), alt: '' | ||||||
| 
 | 
 | ||||||
|                               %h1= t 'notification_mailer.reblog.title' |                               %h1= t 'notification_mailer.reblog.title' | ||||||
|                               %p.lead= t('notification_mailer.reblog.body', name: @account.acct) |                               %p.lead= t('notification_mailer.reblog.body', name: @account.acct) | ||||||
|  |  | ||||||
|  | @ -8,7 +8,7 @@ | ||||||
| = opengraph 'og:type', 'website' | = opengraph 'og:type', 'website' | ||||||
| = opengraph 'og:title', @instance_presenter.site_title | = opengraph 'og:title', @instance_presenter.site_title | ||||||
| = opengraph 'og:description', description | = opengraph 'og:description', description | ||||||
| = opengraph 'og:image', full_asset_url(thumbnail&.file&.url || asset_pack_path('preview.jpg', protocol: :request)) | = opengraph 'og:image', full_asset_url(thumbnail&.file&.url || asset_pack_path('media/images/preview.jpg', protocol: :request)) | ||||||
| = opengraph 'og:image:width', thumbnail ? thumbnail.meta['width'] : '1200' | = opengraph 'og:image:width', thumbnail ? thumbnail.meta['width'] : '1200' | ||||||
| = opengraph 'og:image:height', thumbnail ? thumbnail.meta['height'] : '630' | = opengraph 'og:image:height', thumbnail ? thumbnail.meta['height'] : '630' | ||||||
| = opengraph 'twitter:card', 'summary_large_image' | = opengraph 'twitter:card', 'summary_large_image' | ||||||
|  |  | ||||||
|  | @ -17,7 +17,7 @@ | ||||||
|                                 %tbody |                                 %tbody | ||||||
|                                   %tr |                                   %tr | ||||||
|                                     %td |                                     %td | ||||||
|                                       = image_tag full_pack_url('icon_file_download.png'), alt: '' |                                       = image_tag full_pack_url('media/images/mailer/icon_file_download.png'), alt: '' | ||||||
| 
 | 
 | ||||||
|                               %h1= t 'user_mailer.backup_ready.title' |                               %h1= t 'user_mailer.backup_ready.title' | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -17,7 +17,7 @@ | ||||||
|                                 %tbody |                                 %tbody | ||||||
|                                   %tr |                                   %tr | ||||||
|                                     %td |                                     %td | ||||||
|                                       = image_tag full_pack_url('icon_email.png'), alt: '' |                                       = image_tag full_pack_url('media/images/mailer/icon_email.png'), alt: '' | ||||||
| 
 | 
 | ||||||
|                               %h1= t 'devise.mailer.confirmation_instructions.title' |                               %h1= t 'devise.mailer.confirmation_instructions.title' | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -17,7 +17,7 @@ | ||||||
|                                 %tbody |                                 %tbody | ||||||
|                                   %tr |                                   %tr | ||||||
|                                     %td |                                     %td | ||||||
|                                       = image_tag full_pack_url('icon_email.png'), alt: '' |                                       = image_tag full_pack_url('media/images/mailer/icon_email.png'), alt: '' | ||||||
| 
 | 
 | ||||||
|                               %h1= t 'devise.mailer.email_changed.title' |                               %h1= t 'devise.mailer.email_changed.title' | ||||||
|                               %p.lead= t 'devise.mailer.email_changed.explanation' |                               %p.lead= t 'devise.mailer.email_changed.explanation' | ||||||
|  |  | ||||||
|  | @ -17,7 +17,7 @@ | ||||||
|                                 %tbody |                                 %tbody | ||||||
|                                   %tr |                                   %tr | ||||||
|                                     %td |                                     %td | ||||||
|                                       = image_tag full_pack_url('icon_lock_open.png'), alt: '' |                                       = image_tag full_pack_url('media/images/mailer/icon_lock_open.png'), alt: '' | ||||||
| 
 | 
 | ||||||
|                               %h1= t 'devise.mailer.password_change.title' |                               %h1= t 'devise.mailer.password_change.title' | ||||||
|                               %p.lead= t 'devise.mailer.password_change.explanation' |                               %p.lead= t 'devise.mailer.password_change.explanation' | ||||||
|  |  | ||||||
|  | @ -17,7 +17,7 @@ | ||||||
|                                 %tbody |                                 %tbody | ||||||
|                                   %tr |                                   %tr | ||||||
|                                     %td |                                     %td | ||||||
|                                       = image_tag full_pack_url('icon_email.png'), alt: '' |                                       = image_tag full_pack_url('media/images/mailer/icon_email.png'), alt: '' | ||||||
| 
 | 
 | ||||||
|                               %h1= t 'devise.mailer.reconfirmation_instructions.title' |                               %h1= t 'devise.mailer.reconfirmation_instructions.title' | ||||||
|                               %p.lead= t 'devise.mailer.reconfirmation_instructions.explanation' |                               %p.lead= t 'devise.mailer.reconfirmation_instructions.explanation' | ||||||
|  |  | ||||||
|  | @ -17,7 +17,7 @@ | ||||||
|                                 %tbody |                                 %tbody | ||||||
|                                   %tr |                                   %tr | ||||||
|                                     %td |                                     %td | ||||||
|                                       = image_tag full_pack_url('icon_lock_open.png'), alt: '' |                                       = image_tag full_pack_url('media/images/mailer/icon_lock_open.png'), alt: '' | ||||||
| 
 | 
 | ||||||
|                               %h1= t 'devise.mailer.reset_password_instructions.title' |                               %h1= t 'devise.mailer.reset_password_instructions.title' | ||||||
|                               %p.lead= t 'devise.mailer.reset_password_instructions.explanation' |                               %p.lead= t 'devise.mailer.reset_password_instructions.explanation' | ||||||
|  |  | ||||||
|  | @ -17,7 +17,7 @@ | ||||||
|                                 %tbody |                                 %tbody | ||||||
|                                   %tr |                                   %tr | ||||||
|                                     %td |                                     %td | ||||||
|                                       = image_tag full_pack_url('icon_warning.png'), alt: '' |                                       = image_tag full_pack_url('media/images/mailer/icon_warning.png'), alt: '' | ||||||
| 
 | 
 | ||||||
|                               %h1= t "user_mailer.warning.title.#{@warning.action}" |                               %h1= t "user_mailer.warning.title.#{@warning.action}" | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -17,7 +17,7 @@ | ||||||
|                                 %tbody |                                 %tbody | ||||||
|                                   %tr |                                   %tr | ||||||
|                                     %td |                                     %td | ||||||
|                                       = image_tag full_pack_url('icon_done.png'), alt: '' |                                       = image_tag full_pack_url('media/images/mailer/icon_done.png'), alt: '' | ||||||
| 
 | 
 | ||||||
|                               %h1= t 'user_mailer.welcome.title', name: @resource.account.username |                               %h1= t 'user_mailer.welcome.title', name: @resource.account.username | ||||||
|                               %p.lead= t 'user_mailer.welcome.explanation' |                               %p.lead= t 'user_mailer.welcome.explanation' | ||||||
|  |  | ||||||
|  | @ -12,4 +12,8 @@ require "bundler/setup" | ||||||
| 
 | 
 | ||||||
| require "webpacker" | require "webpacker" | ||||||
| require "webpacker/webpack_runner" | require "webpacker/webpack_runner" | ||||||
| Webpacker::WebpackRunner.run(ARGV) | 
 | ||||||
|  | APP_ROOT = File.expand_path("..", __dir__) | ||||||
|  | Dir.chdir(APP_ROOT) do | ||||||
|  |   Webpacker::WebpackRunner.run(ARGV) | ||||||
|  | end | ||||||
|  |  | ||||||
|  | @ -12,4 +12,8 @@ require "bundler/setup" | ||||||
| 
 | 
 | ||||||
| require "webpacker" | require "webpacker" | ||||||
| require "webpacker/dev_server_runner" | require "webpacker/dev_server_runner" | ||||||
| Webpacker::DevServerRunner.run(ARGV) | 
 | ||||||
|  | APP_ROOT = File.expand_path("..", __dir__) | ||||||
|  | Dir.chdir(APP_ROOT) do | ||||||
|  |   Webpacker::DevServerRunner.run(ARGV) | ||||||
|  | end | ||||||
|  |  | ||||||
|  | @ -1,12 +1,11 @@ | ||||||
| // Common configuration for webpacker loaded from config/webpacker.yml
 | // Common configuration for webpacker loaded from config/webpacker.yml
 | ||||||
| 
 | 
 | ||||||
| const { join, resolve } = require('path'); | const { resolve } = require('path'); | ||||||
| const { env } = require('process'); | const { env } = require('process'); | ||||||
| const { safeLoad } = require('js-yaml'); | const { safeLoad } = require('js-yaml'); | ||||||
| const { readFileSync } = require('fs'); | const { readFileSync } = require('fs'); | ||||||
| 
 | 
 | ||||||
| const configPath = resolve('config', 'webpacker.yml'); | const configPath = resolve('config', 'webpacker.yml'); | ||||||
| const loadersDir = join(__dirname, 'loaders'); |  | ||||||
| const settings = safeLoad(readFileSync(configPath), 'utf8')[env.RAILS_ENV || env.NODE_ENV]; | const settings = safeLoad(readFileSync(configPath), 'utf8')[env.RAILS_ENV || env.NODE_ENV]; | ||||||
| 
 | 
 | ||||||
| const themePath = resolve('config', 'themes.yml'); | const themePath = resolve('config', 'themes.yml'); | ||||||
|  | @ -37,6 +36,5 @@ module.exports = { | ||||||
|     CDN_HOST: env.CDN_HOST, |     CDN_HOST: env.CDN_HOST, | ||||||
|     NODE_ENV: env.NODE_ENV, |     NODE_ENV: env.NODE_ENV, | ||||||
|   }, |   }, | ||||||
|   loadersDir, |  | ||||||
|   output, |   output, | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | @ -1,12 +1,10 @@ | ||||||
| // Note: You must restart bin/webpack-dev-server for changes to take effect
 | // Note: You must restart bin/webpack-dev-server for changes to take effect
 | ||||||
| 
 | 
 | ||||||
| const merge = require('webpack-merge'); | const merge = require('webpack-merge'); | ||||||
| const sharedConfig = require('./shared.js'); | const sharedConfig = require('./shared'); | ||||||
| const { settings, output } = require('./configuration.js'); | const { settings, output } = require('./configuration'); | ||||||
| 
 | 
 | ||||||
| const watchOptions = { | const watchOptions = {}; | ||||||
|   ignored: /node_modules/, |  | ||||||
| }; |  | ||||||
| 
 | 
 | ||||||
| if (process.env.VAGRANT) { | if (process.env.VAGRANT) { | ||||||
|   // If we are in Vagrant, we can't rely on inotify to update us with changed
 |   // If we are in Vagrant, we can't rely on inotify to update us with changed
 | ||||||
|  | @ -17,7 +15,7 @@ if (process.env.VAGRANT) { | ||||||
| 
 | 
 | ||||||
| module.exports = merge(sharedConfig, { | module.exports = merge(sharedConfig, { | ||||||
|   mode: 'development', |   mode: 'development', | ||||||
| 
 |   cache: true, | ||||||
|   devtool: 'cheap-module-eval-source-map', |   devtool: 'cheap-module-eval-source-map', | ||||||
| 
 | 
 | ||||||
|   stats: { |   stats: { | ||||||
|  | @ -30,15 +28,33 @@ module.exports = merge(sharedConfig, { | ||||||
| 
 | 
 | ||||||
|   devServer: { |   devServer: { | ||||||
|     clientLogLevel: 'none', |     clientLogLevel: 'none', | ||||||
|     https: settings.dev_server.https, |     compress: settings.dev_server.compress, | ||||||
|  |     quiet: settings.dev_server.quiet, | ||||||
|  |     disableHostCheck: settings.dev_server.disable_host_check, | ||||||
|     host: settings.dev_server.host, |     host: settings.dev_server.host, | ||||||
|     port: settings.dev_server.port, |     port: settings.dev_server.port, | ||||||
|  |     https: settings.dev_server.https, | ||||||
|  |     hot: settings.dev_server.hmr, | ||||||
|     contentBase: output.path, |     contentBase: output.path, | ||||||
|  |     inline: settings.dev_server.inline, | ||||||
|  |     useLocalIp: settings.dev_server.use_local_ip, | ||||||
|  |     public: settings.dev_server.public, | ||||||
|     publicPath: output.publicPath, |     publicPath: output.publicPath, | ||||||
|     compress: true, |     historyApiFallback: { | ||||||
|     headers: { 'Access-Control-Allow-Origin': '*' }, |       disableDotRule: true, | ||||||
|     historyApiFallback: true, |     }, | ||||||
|     disableHostCheck: true, |     headers: settings.dev_server.headers, | ||||||
|     watchOptions: watchOptions, |     overlay: settings.dev_server.overlay, | ||||||
|  |     stats: { | ||||||
|  |       entrypoints: false, | ||||||
|  |       errorDetails: false, | ||||||
|  |       modules: false, | ||||||
|  |       moduleTrace: false, | ||||||
|  |     }, | ||||||
|  |     watchOptions: Object.assign( | ||||||
|  |       {}, | ||||||
|  |       settings.dev_server.watch_options, | ||||||
|  |       watchOptions | ||||||
|  |     ), | ||||||
|   }, |   }, | ||||||
| }); | }); | ||||||
|  |  | ||||||
|  | @ -1,12 +0,0 @@ | ||||||
| const { env, publicPath } = require('../configuration.js'); |  | ||||||
| 
 |  | ||||||
| module.exports = { |  | ||||||
|   test: /\.(jpg|jpeg|png|gif|svg|eot|ttf|woff|woff2)$/i, |  | ||||||
|   use: [{ |  | ||||||
|     loader: 'file-loader', |  | ||||||
|     options: { |  | ||||||
|       publicPath, |  | ||||||
|       name: env.NODE_ENV === 'production' ? '[name]-[hash].[ext]' : '[name].[ext]', |  | ||||||
|     }, |  | ||||||
|   }], |  | ||||||
| }; |  | ||||||
|  | @ -1,12 +0,0 @@ | ||||||
| const { resolve } = require('path'); |  | ||||||
| 
 |  | ||||||
| const env = process.env.NODE_ENV || 'development'; |  | ||||||
| 
 |  | ||||||
| module.exports = { |  | ||||||
|   test: /\.js$/, |  | ||||||
|   exclude: /node_modules/, |  | ||||||
|   loader: 'babel-loader', |  | ||||||
|   options: { |  | ||||||
|     cacheDirectory: env === 'development' ? false : resolve(__dirname, '..', '..', '..', 'tmp', 'cache', 'babel-loader'), |  | ||||||
|   }, |  | ||||||
| }; |  | ||||||
|  | @ -1,21 +0,0 @@ | ||||||
| const { resolve } = require('path'); |  | ||||||
| 
 |  | ||||||
| const env = process.env.NODE_ENV || 'development'; |  | ||||||
| 
 |  | ||||||
| if (env === 'development') { |  | ||||||
|   module.exports = {}; |  | ||||||
| } else { |  | ||||||
|   // babel options to apply only to external libraries, e.g. remove-prop-types
 |  | ||||||
|   module.exports = { |  | ||||||
|     test: /\.js$/, |  | ||||||
|     include: /node_modules/, |  | ||||||
|     loader: 'babel-loader', |  | ||||||
|     options: { |  | ||||||
|       babelrc: false, |  | ||||||
|       plugins: [ |  | ||||||
|         'transform-react-remove-prop-types', |  | ||||||
|       ], |  | ||||||
|       cacheDirectory: env === 'development' ? false : resolve(__dirname, '..', '..', '..', 'tmp', 'cache', 'babel-loader-external'), |  | ||||||
|     }, |  | ||||||
|   }; |  | ||||||
| } |  | ||||||
|  | @ -1,15 +1,15 @@ | ||||||
| // Note: You must restart bin/webpack-dev-server for changes to take effect
 | // Note: You must restart bin/webpack-dev-server for changes to take effect
 | ||||||
| 
 | 
 | ||||||
|  | const path = require('path'); | ||||||
|  | const { URL } = require('url'); | ||||||
| const merge = require('webpack-merge'); | const merge = require('webpack-merge'); | ||||||
|  | const { BundleAnalyzerPlugin } = require('webpack-bundle-analyzer'); | ||||||
|  | const OfflinePlugin = require('offline-plugin'); | ||||||
| const UglifyJsPlugin = require('uglifyjs-webpack-plugin'); | const UglifyJsPlugin = require('uglifyjs-webpack-plugin'); | ||||||
| const CompressionPlugin = require('compression-webpack-plugin'); | const CompressionPlugin = require('compression-webpack-plugin'); | ||||||
| const zopfli = require('@gfx/zopfli'); | const zopfli = require('@gfx/zopfli'); | ||||||
| const sharedConfig = require('./shared.js'); | const { output } = require('./configuration'); | ||||||
| const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin; | const sharedConfig = require('./shared'); | ||||||
| const OfflinePlugin = require('offline-plugin'); |  | ||||||
| const { publicPath } = require('./configuration.js'); |  | ||||||
| const path = require('path'); |  | ||||||
| const { URL } = require('url'); |  | ||||||
| 
 | 
 | ||||||
| let attachmentHost; | let attachmentHost; | ||||||
| 
 | 
 | ||||||
|  | @ -28,15 +28,9 @@ if (process.env.S3_ENABLED === 'true') { | ||||||
| 
 | 
 | ||||||
| module.exports = merge(sharedConfig, { | module.exports = merge(sharedConfig, { | ||||||
|   mode: 'production', |   mode: 'production', | ||||||
| 
 |   devtool: 'source-map', | ||||||
|   output: { |  | ||||||
|     filename: '[name]-[chunkhash].js', |  | ||||||
|     chunkFilename: '[name]-[chunkhash].js', |  | ||||||
|   }, |  | ||||||
| 
 |  | ||||||
|   devtool: 'source-map', // separate sourcemap file, suitable for production
 |  | ||||||
|   stats: 'normal', |   stats: 'normal', | ||||||
| 
 |   bail: true, | ||||||
|   optimization: { |   optimization: { | ||||||
|     minimize: true, |     minimize: true, | ||||||
|     minimizer: [ |     minimizer: [ | ||||||
|  | @ -60,10 +54,12 @@ module.exports = merge(sharedConfig, { | ||||||
| 
 | 
 | ||||||
|   plugins: [ |   plugins: [ | ||||||
|     new CompressionPlugin({ |     new CompressionPlugin({ | ||||||
|  |       filename: '[path].gz[query]', | ||||||
|       algorithm(input, compressionOptions, callback) { |       algorithm(input, compressionOptions, callback) { | ||||||
|         return zopfli.gzip(input, compressionOptions, callback); |         return zopfli.gzip(input, compressionOptions, callback); | ||||||
|       }, |       }, | ||||||
|       test: /\.(js|css|html|json|ico|svg|eot|otf|ttf)$/, |       cache: true, | ||||||
|  |       test: /\.(js|css|html|json|ico|svg|eot|otf|ttf|map)$/, | ||||||
|     }), |     }), | ||||||
|     new BundleAnalyzerPlugin({ // generates report.html and stats.json
 |     new BundleAnalyzerPlugin({ // generates report.html and stats.json
 | ||||||
|       analyzerMode: 'static', |       analyzerMode: 'static', | ||||||
|  | @ -76,7 +72,7 @@ module.exports = merge(sharedConfig, { | ||||||
|       logLevel: 'silent', // do not bother Webpacker, who runs with --json and parses stdout
 |       logLevel: 'silent', // do not bother Webpacker, who runs with --json and parses stdout
 | ||||||
|     }), |     }), | ||||||
|     new OfflinePlugin({ |     new OfflinePlugin({ | ||||||
|       publicPath: publicPath, // sw.js must be served from the root to avoid scope issues
 |       publicPath: output.publicPath, // sw.js must be served from the root to avoid scope issues
 | ||||||
|       caches: { |       caches: { | ||||||
|         main: [':rest:'], |         main: [':rest:'], | ||||||
|         additional: [':externals:'], |         additional: [':externals:'], | ||||||
|  |  | ||||||
							
								
								
									
										21
									
								
								config/webpack/rules/babel.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								config/webpack/rules/babel.js
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,21 @@ | ||||||
|  | const { join, resolve } = require('path'); | ||||||
|  | const { env, settings } = require('../configuration'); | ||||||
|  | 
 | ||||||
|  | module.exports = { | ||||||
|  |   test: /\.(js|jsx|mjs)$/, | ||||||
|  |   include: [ | ||||||
|  |     settings.source_path, | ||||||
|  |     ...settings.resolved_paths, | ||||||
|  |   ].map(p => resolve(p)), | ||||||
|  |   exclude: /node_modules/, | ||||||
|  |   use: [ | ||||||
|  |     { | ||||||
|  |       loader: 'babel-loader', | ||||||
|  |       options: { | ||||||
|  |         cacheDirectory: join(settings.cache_path, 'babel-loader'), | ||||||
|  |         cacheCompression: env.NODE_ENV === 'production', | ||||||
|  |         compact: env.NODE_ENV === 'production', | ||||||
|  |       }, | ||||||
|  |     }, | ||||||
|  |   ], | ||||||
|  | }; | ||||||
|  | @ -4,7 +4,14 @@ module.exports = { | ||||||
|   test: /\.s?css$/i, |   test: /\.s?css$/i, | ||||||
|   use: [ |   use: [ | ||||||
|     MiniCssExtractPlugin.loader, |     MiniCssExtractPlugin.loader, | ||||||
|     'css-loader', |     { | ||||||
|  |       loader: 'css-loader', | ||||||
|  |       options: { | ||||||
|  |         sourceMap: true, | ||||||
|  |         importLoaders: 2, | ||||||
|  |         localIdentName: '[name]__[local]___[hash:base64:5]', | ||||||
|  |       }, | ||||||
|  |     }, | ||||||
|     { |     { | ||||||
|       loader: 'postcss-loader', |       loader: 'postcss-loader', | ||||||
|       options: { |       options: { | ||||||
							
								
								
									
										20
									
								
								config/webpack/rules/file.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								config/webpack/rules/file.js
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,20 @@ | ||||||
|  | const { join } = require('path'); | ||||||
|  | const { settings } = require('../configuration'); | ||||||
|  | 
 | ||||||
|  | module.exports = { | ||||||
|  |   test: new RegExp(`(${settings.static_assets_extensions.join('|')})$`, 'i'), | ||||||
|  |   use: [ | ||||||
|  |     { | ||||||
|  |       loader: 'file-loader', | ||||||
|  |       options: { | ||||||
|  |         name(file) { | ||||||
|  |           if (file.includes(settings.source_path)) { | ||||||
|  |             return 'media/[path][name]-[hash].[ext]'; | ||||||
|  |           } | ||||||
|  |           return 'media/[folder]/[name]-[hash:8].[ext]'; | ||||||
|  |         }, | ||||||
|  |         context: join(settings.source_path), | ||||||
|  |       }, | ||||||
|  |     }, | ||||||
|  |   ], | ||||||
|  | }; | ||||||
							
								
								
									
										14
									
								
								config/webpack/rules/index.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								config/webpack/rules/index.js
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,14 @@ | ||||||
|  | const babel = require('./babel'); | ||||||
|  | const css = require('./css'); | ||||||
|  | const file = require('./file'); | ||||||
|  | const nodeModules = require('./node_modules'); | ||||||
|  | 
 | ||||||
|  | // Webpack loaders are processed in reverse order
 | ||||||
|  | // https://webpack.js.org/concepts/loaders/#loader-features
 | ||||||
|  | // Lastly, process static files using file loader
 | ||||||
|  | module.exports = { | ||||||
|  |   file, | ||||||
|  |   css, | ||||||
|  |   nodeModules, | ||||||
|  |   babel, | ||||||
|  | }; | ||||||
							
								
								
									
										26
									
								
								config/webpack/rules/node_modules.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								config/webpack/rules/node_modules.js
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,26 @@ | ||||||
|  | const { join } = require('path'); | ||||||
|  | const { settings, env } = require('../configuration'); | ||||||
|  | 
 | ||||||
|  | module.exports = { | ||||||
|  |   test: /\.(js|mjs)$/, | ||||||
|  |   include: /node_modules/, | ||||||
|  |   exclude: /@babel(?:\/|\\{1,2})runtime/, | ||||||
|  |   use: [ | ||||||
|  |     { | ||||||
|  |       loader: 'babel-loader', | ||||||
|  |       options: { | ||||||
|  |         babelrc: false, | ||||||
|  |         presets: [ | ||||||
|  |           ['@babel/env', { modules: false }], | ||||||
|  |         ], | ||||||
|  |         plugins: [ | ||||||
|  |           'transform-react-remove-prop-types', | ||||||
|  |         ], | ||||||
|  |         cacheDirectory: join(settings.cache_path, 'babel-loader-node-modules'), | ||||||
|  |         cacheCompression: env.NODE_ENV === 'production', | ||||||
|  |         compact: false, | ||||||
|  |         sourceMaps: false, | ||||||
|  |       }, | ||||||
|  |     }, | ||||||
|  |   ], | ||||||
|  | }; | ||||||
|  | @ -6,7 +6,8 @@ const { sync } = require('glob'); | ||||||
| const MiniCssExtractPlugin = require('mini-css-extract-plugin'); | const MiniCssExtractPlugin = require('mini-css-extract-plugin'); | ||||||
| const AssetsManifestPlugin = require('webpack-assets-manifest'); | const AssetsManifestPlugin = require('webpack-assets-manifest'); | ||||||
| const extname = require('path-complete-extname'); | const extname = require('path-complete-extname'); | ||||||
| const { env, settings, themes, output, loadersDir } = require('./configuration.js'); | const { env, settings, themes, output } = require('./configuration'); | ||||||
|  | const rules = require('./rules'); | ||||||
| const localePackPaths = require('./generateLocalePacks'); | const localePackPaths = require('./generateLocalePacks'); | ||||||
| 
 | 
 | ||||||
| const extensionGlob = `**/*{${settings.extensions.join(',')}}*`; | const extensionGlob = `**/*{${settings.extensions.join(',')}}*`; | ||||||
|  | @ -33,8 +34,9 @@ module.exports = { | ||||||
|   ), |   ), | ||||||
| 
 | 
 | ||||||
|   output: { |   output: { | ||||||
|     filename: '[name].js', |     filename: 'js/[name]-[chunkhash].js', | ||||||
|     chunkFilename: '[name].js', |     chunkFilename: 'js/[name]-[chunkhash].chunk.js', | ||||||
|  |     hotUpdateChunkFilename: 'js/[id]-[hash].hot-update.js', | ||||||
|     path: output.path, |     path: output.path, | ||||||
|     publicPath: output.publicPath, |     publicPath: output.publicPath, | ||||||
|   }, |   }, | ||||||
|  | @ -60,7 +62,7 @@ module.exports = { | ||||||
|   }, |   }, | ||||||
| 
 | 
 | ||||||
|   module: { |   module: { | ||||||
|     rules: sync(join(loadersDir, '*.js')).map(loader => require(loader)), |     rules: Object.keys(rules).map(key => rules[key]), | ||||||
|   }, |   }, | ||||||
| 
 | 
 | ||||||
|   plugins: [ |   plugins: [ | ||||||
|  | @ -73,11 +75,14 @@ module.exports = { | ||||||
|       } |       } | ||||||
|     ), |     ), | ||||||
|     new MiniCssExtractPlugin({ |     new MiniCssExtractPlugin({ | ||||||
|       filename: env.NODE_ENV === 'production' ? '[name]-[contenthash].css' : '[name].css', |       filename: 'css/[name]-[contenthash:8].css', | ||||||
|  |       chunkFilename: 'css/[name]-[contenthash:8].chunk.css', | ||||||
|     }), |     }), | ||||||
|     new AssetsManifestPlugin({ |     new AssetsManifestPlugin({ | ||||||
|       publicPath: true, |       integrity: false, | ||||||
|  |       entrypoints: true, | ||||||
|       writeToDisk: true, |       writeToDisk: true, | ||||||
|  |       publicPath: true, | ||||||
|     }), |     }), | ||||||
|   ], |   ], | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -3,8 +3,11 @@ | ||||||
| default: &default | default: &default | ||||||
|   source_path: app/javascript |   source_path: app/javascript | ||||||
|   source_entry_path: packs |   source_entry_path: packs | ||||||
|  |   public_root_path: public | ||||||
|   public_output_path: packs |   public_output_path: packs | ||||||
|   cache_path: tmp/cache/webpacker |   cache_path: tmp/cache/webpacker | ||||||
|  |   check_yarn_integrity: false | ||||||
|  |   webpack_compile_output: false | ||||||
| 
 | 
 | ||||||
|   # Additional paths webpack should lookup modules |   # Additional paths webpack should lookup modules | ||||||
|   # ['app/assets', 'engine/foo/app/assets'] |   # ['app/assets', 'engine/foo/app/assets'] | ||||||
|  | @ -13,11 +16,31 @@ default: &default | ||||||
|   # Reload manifest.json on all requests so we reload latest compiled packs |   # Reload manifest.json on all requests so we reload latest compiled packs | ||||||
|   cache_manifest: false |   cache_manifest: false | ||||||
| 
 | 
 | ||||||
|  |   # Extract and emit a css file | ||||||
|  |   extract_css: true | ||||||
|  | 
 | ||||||
|  |   static_assets_extensions: | ||||||
|  |     - .jpg | ||||||
|  |     - .jpeg | ||||||
|  |     - .png | ||||||
|  |     - .tiff | ||||||
|  |     - .ico | ||||||
|  |     - .svg | ||||||
|  |     - .eot | ||||||
|  |     - .otf | ||||||
|  |     - .ttf | ||||||
|  |     - .woff | ||||||
|  |     - .woff2 | ||||||
|  | 
 | ||||||
|   extensions: |   extensions: | ||||||
|  |     - .mjs | ||||||
|     - .js |     - .js | ||||||
|     - .sass |     - .sass | ||||||
|     - .scss |     - .scss | ||||||
|     - .css |     - .css | ||||||
|  |     - .module.sass | ||||||
|  |     - .module.scss | ||||||
|  |     - .module.css | ||||||
|     - .png |     - .png | ||||||
|     - .svg |     - .svg | ||||||
|     - .gif |     - .gif | ||||||
|  | @ -26,24 +49,38 @@ default: &default | ||||||
| 
 | 
 | ||||||
| development: | development: | ||||||
|   <<: *default |   <<: *default | ||||||
|  | 
 | ||||||
|   compile: true |   compile: true | ||||||
| 
 | 
 | ||||||
|  |   # Reference: https://webpack.js.org/configuration/dev-server/ | ||||||
|   dev_server: |   dev_server: | ||||||
|  |     https: false | ||||||
|     host: localhost |     host: localhost | ||||||
|     port: 3035 |     port: 3035 | ||||||
|  |     public: localhost:3035 | ||||||
|     hmr: false |     hmr: false | ||||||
|     https: false |     # Inline should be set to true if using HMR | ||||||
|  |     inline: true | ||||||
|  |     overlay: true | ||||||
|  |     compress: true | ||||||
|  |     disable_host_check: true | ||||||
|  |     use_local_ip: false | ||||||
|  |     quiet: false | ||||||
|  |     headers: | ||||||
|  |       'Access-Control-Allow-Origin': '*' | ||||||
|  |     watch_options: | ||||||
|  |       ignored: '**/node_modules/**' | ||||||
| 
 | 
 | ||||||
| test: | test: | ||||||
|   <<: *default |   <<: *default | ||||||
| 
 | 
 | ||||||
|   # Compile test packs to a separate directory |  | ||||||
|   public_output_path: packs-test |  | ||||||
| 
 |  | ||||||
|   # CircleCI precompiles packs prior to running the tests. |   # CircleCI precompiles packs prior to running the tests. | ||||||
|   # Also avoids race conditions in parallel_tests. |   # Also avoids race conditions in parallel_tests. | ||||||
|   compile: false |   compile: false | ||||||
| 
 | 
 | ||||||
|  |   # Compile test packs to a separate directory | ||||||
|  |   public_output_path: packs-test | ||||||
|  | 
 | ||||||
| production: | production: | ||||||
|   <<: *default |   <<: *default | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -1,29 +0,0 @@ | ||||||
| module.exports = { |  | ||||||
|   projects: [ |  | ||||||
|     '<rootDir>/app/javascript/mastodon', |  | ||||||
|   ], |  | ||||||
|   testPathIgnorePatterns: [ |  | ||||||
|     '<rootDir>/node_modules/', |  | ||||||
|     '<rootDir>/vendor/', |  | ||||||
|     '<rootDir>/config/', |  | ||||||
|     '<rootDir>/log/', |  | ||||||
|     '<rootDir>/public/', |  | ||||||
|     '<rootDir>/tmp/', |  | ||||||
|   ], |  | ||||||
|   setupFiles: [ |  | ||||||
|     'raf/polyfill', |  | ||||||
|   ], |  | ||||||
|   setupTestFrameworkScriptFile: '<rootDir>/app/javascript/mastodon/test_setup.js', |  | ||||||
|   collectCoverageFrom: [ |  | ||||||
|     'app/javascript/mastodon/**/*.js', |  | ||||||
|     '!app/javascript/mastodon/features/emoji/emoji_compressed.js', |  | ||||||
|     '!app/javascript/mastodon/locales/locale-data/*.js', |  | ||||||
|     '!app/javascript/mastodon/service_worker/entry.js', |  | ||||||
|     '!app/javascript/mastodon/test_setup.js', |  | ||||||
|   ], |  | ||||||
|   coverageDirectory: '<rootDir>/coverage', |  | ||||||
|   moduleDirectories: [ |  | ||||||
|     '<rootDir>/node_modules', |  | ||||||
|     '<rootDir>/app/javascript', |  | ||||||
|   ], |  | ||||||
| }; |  | ||||||
							
								
								
									
										80
									
								
								package.json
									
										
									
									
									
								
							
							
						
						
									
										80
									
								
								package.json
									
										
									
									
									
								
							|  | @ -24,36 +24,66 @@ | ||||||
|     "iOS >= 9", |     "iOS >= 9", | ||||||
|     "not dead" |     "not dead" | ||||||
|   ], |   ], | ||||||
|  |   "jest": { | ||||||
|  |     "projects": [ | ||||||
|  |       "<rootDir>/app/javascript/mastodon" | ||||||
|  |     ], | ||||||
|  |     "testPathIgnorePatterns": [ | ||||||
|  |       "<rootDir>/node_modules/", | ||||||
|  |       "<rootDir>/vendor/", | ||||||
|  |       "<rootDir>/config/", | ||||||
|  |       "<rootDir>/log/", | ||||||
|  |       "<rootDir>/public/", | ||||||
|  |       "<rootDir>/tmp/" | ||||||
|  |     ], | ||||||
|  |     "setupFiles": [ | ||||||
|  |       "raf/polyfill" | ||||||
|  |     ], | ||||||
|  |     "setupFilesAfterEnv": [ | ||||||
|  |       "<rootDir>/app/javascript/mastodon/test_setup.js" | ||||||
|  |     ], | ||||||
|  |     "collectCoverageFrom": [ | ||||||
|  |       "app/javascript/mastodon/**/*.js", | ||||||
|  |       "!app/javascript/mastodon/features/emoji/emoji_compressed.js", | ||||||
|  |       "!app/javascript/mastodon/locales/locale-data/*.js", | ||||||
|  |       "!app/javascript/mastodon/service_worker/entry.js", | ||||||
|  |       "!app/javascript/mastodon/test_setup.js" | ||||||
|  |     ], | ||||||
|  |     "coverageDirectory": "<rootDir>/coverage", | ||||||
|  |     "moduleDirectories": [ | ||||||
|  |       "<rootDir>/node_modules", | ||||||
|  |       "<rootDir>/app/javascript" | ||||||
|  |     ] | ||||||
|  |   }, | ||||||
|   "private": true, |   "private": true, | ||||||
|   "dependencies": { |   "dependencies": { | ||||||
|     "@babel/core": "^7.2.2", |     "@babel/core": "^7.3.4", | ||||||
|     "@babel/plugin-proposal-class-properties": "^7.2.3", |     "@babel/plugin-proposal-class-properties": "^7.3.4", | ||||||
|     "@babel/plugin-proposal-decorators": "^7.2.3", |     "@babel/plugin-proposal-decorators": "^7.3.0", | ||||||
|     "@babel/plugin-proposal-object-rest-spread": "^7.2.0", |     "@babel/plugin-proposal-object-rest-spread": "^7.3.4", | ||||||
|     "@babel/plugin-syntax-dynamic-import": "^7.2.0", |     "@babel/plugin-syntax-dynamic-import": "^7.2.0", | ||||||
|     "@babel/plugin-transform-react-inline-elements": "^7.2.0", |     "@babel/plugin-transform-react-inline-elements": "^7.2.0", | ||||||
|     "@babel/plugin-transform-react-jsx-self": "^7.2.0", |     "@babel/plugin-transform-react-jsx-self": "^7.2.0", | ||||||
|     "@babel/plugin-transform-react-jsx-source": "^7.2.0", |     "@babel/plugin-transform-react-jsx-source": "^7.2.0", | ||||||
|     "@babel/plugin-transform-runtime": "^7.2.0", |     "@babel/plugin-transform-runtime": "^7.3.4", | ||||||
|     "@babel/preset-env": "^7.2.3", |     "@babel/preset-env": "^7.3.4", | ||||||
|     "@babel/preset-react": "^7.0.0", |     "@babel/preset-react": "^7.0.0", | ||||||
|     "@babel/runtime": "^7.2.0", |     "@babel/runtime": "^7.3.4", | ||||||
|     "@gfx/zopfli": "^1.0.10", |     "@gfx/zopfli": "^1.0.11", | ||||||
|     "array-includes": "^3.0.3", |     "array-includes": "^3.0.3", | ||||||
|     "autoprefixer": "^9.4.3", |     "autoprefixer": "^9.4.10", | ||||||
|     "axios": "^0.18.0", |     "axios": "^0.18.0", | ||||||
|     "babel-core": "^7.0.0-bridge.0", |     "babel-loader": "^8.0.5", | ||||||
|     "babel-loader": "^8.0.4", |  | ||||||
|     "babel-plugin-lodash": "^3.3.4", |     "babel-plugin-lodash": "^3.3.4", | ||||||
|     "babel-plugin-preval": "^3.0.1", |     "babel-plugin-preval": "^3.0.1", | ||||||
|     "babel-plugin-react-intl": "^3.0.1", |     "babel-plugin-react-intl": "^3.0.1", | ||||||
|     "babel-plugin-transform-react-remove-prop-types": "^0.4.21", |     "babel-plugin-transform-react-remove-prop-types": "^0.4.24", | ||||||
|     "babel-runtime": "^6.26.0", |     "babel-runtime": "^6.26.0", | ||||||
|     "classnames": "^2.2.5", |     "classnames": "^2.2.5", | ||||||
|     "compression-webpack-plugin": "^2.0.0", |     "compression-webpack-plugin": "^2.0.0", | ||||||
|     "cross-env": "^5.1.4", |     "cross-env": "^5.1.4", | ||||||
|     "css-loader": "^2.1.0", |     "css-loader": "^2.1.1", | ||||||
|     "cssnano": "^4.1.8", |     "cssnano": "^4.1.10", | ||||||
|     "detect-passive-events": "^1.0.2", |     "detect-passive-events": "^1.0.2", | ||||||
|     "dotenv": "^6.2.0", |     "dotenv": "^6.2.0", | ||||||
|     "emoji-mart": "Gargron/emoji-mart#build", |     "emoji-mart": "Gargron/emoji-mart#build", | ||||||
|  | @ -119,26 +149,25 @@ | ||||||
|     "requestidlecallback": "^0.3.0", |     "requestidlecallback": "^0.3.0", | ||||||
|     "reselect": "^4.0.0", |     "reselect": "^4.0.0", | ||||||
|     "rimraf": "^2.6.1", |     "rimraf": "^2.6.1", | ||||||
|     "sass": "^1.15.2", |     "sass": "^1.17.2", | ||||||
|     "sass-loader": "^7.0.3", |     "sass-loader": "^7.0.3", | ||||||
|     "stringz": "^1.0.0", |     "stringz": "^1.0.0", | ||||||
|     "style-loader": "0.23.1", |  | ||||||
|     "substring-trie": "^1.0.2", |     "substring-trie": "^1.0.2", | ||||||
|     "throng": "^4.0.0", |     "throng": "^4.0.0", | ||||||
|     "tiny-queue": "^0.2.1", |     "tiny-queue": "^0.2.1", | ||||||
|     "uglifyjs-webpack-plugin": "^2.1.1", |     "uglifyjs-webpack-plugin": "^2.1.2", | ||||||
|     "uuid": "^3.1.0", |     "uuid": "^3.1.0", | ||||||
|     "uws": "10.148.0", |     "uws": "10.148.0", | ||||||
|     "webpack": "^4.28.3", |     "webpack": "^4.29.6", | ||||||
|     "webpack-assets-manifest": "^3.1.1", |     "webpack-assets-manifest": "^3.1.1", | ||||||
|     "webpack-bundle-analyzer": "^3.0.3", |     "webpack-bundle-analyzer": "^3.1.0", | ||||||
|     "webpack-cli": "^3.1.2", |     "webpack-cli": "^3.2.3", | ||||||
|     "webpack-merge": "^4.1.5", |     "webpack-merge": "^4.2.1", | ||||||
|     "websocket.js": "^0.1.12" |     "websocket.js": "^0.1.12" | ||||||
|   }, |   }, | ||||||
|   "devDependencies": { |   "devDependencies": { | ||||||
|     "babel-eslint": "^10.0.1", |     "babel-eslint": "^10.0.1", | ||||||
|     "babel-jest": "^23.6.0", |     "babel-jest": "^24.5.0", | ||||||
|     "enzyme": "^3.8.0", |     "enzyme": "^3.8.0", | ||||||
|     "enzyme-adapter-react-16": "^1.7.1", |     "enzyme-adapter-react-16": "^1.7.1", | ||||||
|     "eslint": "^5.11.1", |     "eslint": "^5.11.1", | ||||||
|  | @ -146,14 +175,11 @@ | ||||||
|     "eslint-plugin-jsx-a11y": "~6.1.2", |     "eslint-plugin-jsx-a11y": "~6.1.2", | ||||||
|     "eslint-plugin-promise": "~4.0.1", |     "eslint-plugin-promise": "~4.0.1", | ||||||
|     "eslint-plugin-react": "~7.12.1", |     "eslint-plugin-react": "~7.12.1", | ||||||
|     "jest": "^23.6.0", |     "jest": "^24.5.0", | ||||||
|     "raf": "^3.4.1", |     "raf": "^3.4.1", | ||||||
|     "react-intl-translations-manager": "^5.0.3", |     "react-intl-translations-manager": "^5.0.3", | ||||||
|     "react-test-renderer": "^16.7.0", |     "react-test-renderer": "^16.7.0", | ||||||
|     "webpack-dev-server": "^3.1.14", |     "webpack-dev-server": "^3.2.1", | ||||||
|     "yargs": "^12.0.5" |     "yargs": "^12.0.5" | ||||||
|   }, |  | ||||||
|   "optionalDependencies": { |  | ||||||
|     "fsevents": "*" |  | ||||||
|   } |   } | ||||||
| } | } | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue