Introduce common JavaScript file (#2981)
* Create common chunk rather than vendor chunk vendor chunk is a set of modules provided by external vendors, but now we can have a chunk as a set of modules shared by multiple entry points, which could be more efficent than having vendor chunk. * Start rails-ujs in common.js This is used by /settings/two_factor_authentication.
This commit is contained in:
		
				
					committed by
					
						
						Eugen Rochko
					
				
			
			
				
	
			
			
			
						parent
						
							6ee3a10f17
						
					
				
				
					commit
					85c9496340
				
			@@ -17,11 +17,8 @@ function main() {
 | 
				
			|||||||
  const Mastodon = require('mastodon/containers/mastodon').default;
 | 
					  const Mastodon = require('mastodon/containers/mastodon').default;
 | 
				
			||||||
  const React = require('react');
 | 
					  const React = require('react');
 | 
				
			||||||
  const ReactDOM = require('react-dom');
 | 
					  const ReactDOM = require('react-dom');
 | 
				
			||||||
  const Rails = require('rails-ujs');
 | 
					 | 
				
			||||||
  window.Perf = require('react-addons-perf');
 | 
					  window.Perf = require('react-addons-perf');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Rails.start();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  require.context('../images/', true);
 | 
					  require.context('../images/', true);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // import customization styles
 | 
					  // import customization styles
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										2
									
								
								app/javascript/packs/common.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								app/javascript/packs/common.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,2 @@
 | 
				
			|||||||
 | 
					import { start } from 'rails-ujs';
 | 
				
			||||||
 | 
					start();
 | 
				
			||||||
@@ -3,12 +3,9 @@ import { length } from 'stringz';
 | 
				
			|||||||
import { default as dateFormat } from 'date-fns/format';
 | 
					import { default as dateFormat } from 'date-fns/format';
 | 
				
			||||||
import distanceInWordsStrict from 'date-fns/distance_in_words_strict';
 | 
					import distanceInWordsStrict from 'date-fns/distance_in_words_strict';
 | 
				
			||||||
import { delegate } from 'rails-ujs';
 | 
					import { delegate } from 'rails-ujs';
 | 
				
			||||||
import Rails from 'rails-ujs';
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
require.context('../images/', true);
 | 
					require.context('../images/', true);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Rails.start();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const parseFormat = (format) => format.replace(/%(\w)/g, (_, modifier) => {
 | 
					const parseFormat = (format) => format.replace(/%(\w)/g, (_, modifier) => {
 | 
				
			||||||
  switch (modifier) {
 | 
					  switch (modifier) {
 | 
				
			||||||
  case '%':
 | 
					  case '%':
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -18,9 +18,8 @@
 | 
				
			|||||||
        = ' - '
 | 
					        = ' - '
 | 
				
			||||||
      = title
 | 
					      = title
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    = stylesheet_pack_tag 'vendor', media: 'all'
 | 
					 | 
				
			||||||
    = stylesheet_pack_tag 'application', media: 'all'
 | 
					    = stylesheet_pack_tag 'application', media: 'all'
 | 
				
			||||||
    = javascript_pack_tag 'vendor', integrity: true, crossorigin: 'anonymous'
 | 
					    = javascript_pack_tag 'common', integrity: true, crossorigin: 'anonymous'
 | 
				
			||||||
    = csrf_meta_tags
 | 
					    = csrf_meta_tags
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    = yield :header_tags
 | 
					    = yield :header_tags
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -40,8 +40,8 @@ module.exports = {
 | 
				
			|||||||
    new ExtractTextPlugin(env.NODE_ENV === 'production' ? '[name]-[hash].css' : '[name].css'),
 | 
					    new ExtractTextPlugin(env.NODE_ENV === 'production' ? '[name]-[hash].css' : '[name].css'),
 | 
				
			||||||
    new ManifestPlugin({ fileName: paths.manifest, publicPath, writeToFileEmit: true }),
 | 
					    new ManifestPlugin({ fileName: paths.manifest, publicPath, writeToFileEmit: true }),
 | 
				
			||||||
    new webpack.optimize.CommonsChunkPlugin({
 | 
					    new webpack.optimize.CommonsChunkPlugin({
 | 
				
			||||||
      name: 'vendor',
 | 
					      name: 'common',
 | 
				
			||||||
      minChunks: ({ resource }) => /node_modules/.test(resource)
 | 
					      minChunks: 2
 | 
				
			||||||
    })
 | 
					    })
 | 
				
			||||||
  ],
 | 
					  ],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user