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 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
 | 
			
		||||
    })
 | 
			
		||||
  ],
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user