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:
		
							parent
							
								
									6ee3a10f17
								
							
						
					
					
						commit
						85c9496340
					
				
					 5 changed files with 5 additions and 10 deletions
				
			
		| 
						 | 
				
			
			@ -17,11 +17,8 @@ function main() {
 | 
			
		|||
  const Mastodon = require('mastodon/containers/mastodon').default;
 | 
			
		||||
  const React = require('react');
 | 
			
		||||
  const ReactDOM = require('react-dom');
 | 
			
		||||
  const Rails = require('rails-ujs');
 | 
			
		||||
  window.Perf = require('react-addons-perf');
 | 
			
		||||
 | 
			
		||||
  Rails.start();
 | 
			
		||||
 | 
			
		||||
  require.context('../images/', true);
 | 
			
		||||
 | 
			
		||||
  // 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 distanceInWordsStrict from 'date-fns/distance_in_words_strict';
 | 
			
		||||
import { delegate } from 'rails-ujs';
 | 
			
		||||
import Rails from 'rails-ujs';
 | 
			
		||||
 | 
			
		||||
require.context('../images/', true);
 | 
			
		||||
 | 
			
		||||
Rails.start();
 | 
			
		||||
 | 
			
		||||
const parseFormat = (format) => format.replace(/%(\w)/g, (_, modifier) => {
 | 
			
		||||
  switch (modifier) {
 | 
			
		||||
  case '%':
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -18,9 +18,8 @@
 | 
			
		|||
        = ' - '
 | 
			
		||||
      = title
 | 
			
		||||
 | 
			
		||||
    = stylesheet_pack_tag 'vendor', 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
 | 
			
		||||
 | 
			
		||||
    = yield :header_tags
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -40,8 +40,8 @@ module.exports = {
 | 
			
		|||
    new ExtractTextPlugin(env.NODE_ENV === 'production' ? '[name]-[hash].css' : '[name].css'),
 | 
			
		||||
    new ManifestPlugin({ fileName: paths.manifest, publicPath, writeToFileEmit: true }),
 | 
			
		||||
    new webpack.optimize.CommonsChunkPlugin({
 | 
			
		||||
      name: 'vendor',
 | 
			
		||||
      minChunks: ({ resource }) => /node_modules/.test(resource)
 | 
			
		||||
      name: 'common',
 | 
			
		||||
      minChunks: 2
 | 
			
		||||
    })
 | 
			
		||||
  ],
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue