]> cat aescling's git repositories - mastodon.git/commitdiff
Introduce common JavaScript file (#2981)
authorAkihiko Odaki <akihiko.odaki.4i@stu.hosei.ac.jp>
Mon, 15 May 2017 18:20:10 +0000 (03:20 +0900)
committerEugen Rochko <eugen@zeonfederated.com>
Mon, 15 May 2017 18:20:10 +0000 (20:20 +0200)
* 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.

app/javascript/mastodon/main.js
app/javascript/packs/common.js [new file with mode: 0644]
app/javascript/packs/public.js
app/views/layouts/application.html.haml
config/webpack/shared.js

index 08845112b38217343ad0965c03ccb46f154b3e9d..313721c88de79910d906073d899c072a08f5a4f4 100644 (file)
@@ -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
diff --git a/app/javascript/packs/common.js b/app/javascript/packs/common.js
new file mode 100644 (file)
index 0000000..9d63d8f
--- /dev/null
@@ -0,0 +1,2 @@
+import { start } from 'rails-ujs';
+start();
index bbeb0a9ecf677e07ce0a1d969fff77749a82c426..6aef2ffeef9a88175db3cc9528c5d0c83a67f166 100644 (file)
@@ -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 '%':
index 73fab9a5c4770be721ac4d06255cdfc37a46664f..21590ae3cc0d65a2f901bf0352e1f5fe1302a0e7 100755 (executable)
@@ -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
index ef9feaeba77d7711c2282689e9ff36d5a5475a6a..00821880816fac2309c3a358936c6ac346f89f32 100644 (file)
@@ -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
     })
   ],