From dd85278d54e7bef392e44ccf22cf49fe595a36d6 Mon Sep 17 00:00:00 2001 From: syuilo Date: Thu, 23 Nov 2017 06:51:32 +0900 Subject: [PATCH] Fix bug --- src/web/app/init.ts | 5 +++++ webpack/module/rules/consts.ts | 41 ---------------------------------- webpack/module/rules/index.ts | 2 -- webpack/plugins/consts.ts | 37 ++++++++++++++++++++++++++++++ webpack/plugins/index.ts | 2 ++ 5 files changed, 44 insertions(+), 43 deletions(-) delete mode 100644 webpack/module/rules/consts.ts create mode 100644 webpack/plugins/consts.ts diff --git a/src/web/app/init.ts b/src/web/app/init.ts index 76bad0ae6..79be1d368 100644 --- a/src/web/app/init.ts +++ b/src/web/app/init.ts @@ -5,7 +5,9 @@ declare const _VERSION_: string; declare const _LANG_: string; declare const _HOST_: string; +declare const __CONSTS__: any; +import * as riot from 'riot'; import checkForUpdate from './common/scripts/check-for-update'; import mixin from './common/mixins'; import MiOS from './common/mios'; @@ -34,6 +36,9 @@ if (_HOST_ != 'localhost') { head.appendChild(meta); } +// Set global configuration +(riot as any).mixin(__CONSTS__); + // iOSでプライベートモードだとlocalStorageが使えないので既存のメソッドを上書きする try { localStorage.setItem('kyoppie', 'yuppie'); diff --git a/webpack/module/rules/consts.ts b/webpack/module/rules/consts.ts deleted file mode 100644 index 7f6610621..000000000 --- a/webpack/module/rules/consts.ts +++ /dev/null @@ -1,41 +0,0 @@ -/** - * Replace consts - */ - -const StringReplacePlugin = require('string-replace-webpack-plugin'); - -import version from '../../../src/version'; -const constants = require('../../../src/const.json'); -import config from '../../../src/conf'; - -export default lang => { - // 置換の誤爆を防ぐため文字数の多い順に並べてください - const consts = { - _RECAPTCHA_SITEKEY_: JSON.stringify(config.recaptcha.site_key), - _SW_PUBLICKEY_: config.sw ? JSON.stringify(config.sw.public_key) : JSON.stringify(null), - _THEME_COLOR_: JSON.stringify(constants.themeColor), - _VERSION_: JSON.stringify(version), - _STATUS_URL_: JSON.stringify(config.status_url), - _STATS_URL_: JSON.stringify(config.stats_url), - _ABOUT_URL_: JSON.stringify(config.about_url), - _API_URL_: JSON.stringify(config.api_url), - _DEV_URL_: JSON.stringify(config.dev_url), - _CH_URL_: JSON.stringify(config.ch_url), - _LANG_: JSON.stringify(lang), - _HOST_: JSON.stringify(config.host), - _URL_: JSON.stringify(config.url), - }; - - const replacements = Object.keys(consts).map(key => ({ - pattern: new RegExp(key, 'g'), replacement: () => consts[key] - })); - - return { - enforce: 'post', - test: /\.(tag|js|ts)$/, - exclude: /node_modules/, - loader: StringReplacePlugin.replace({ - replacements: replacements - }) - }; -}; diff --git a/webpack/module/rules/index.ts b/webpack/module/rules/index.ts index 0006f622d..9c1262b3d 100644 --- a/webpack/module/rules/index.ts +++ b/webpack/module/rules/index.ts @@ -1,5 +1,4 @@ import i18n from './i18n'; -import consts from './consts'; import base64 from './base64'; import themeColor from './theme-color'; import tag from './tag'; @@ -8,7 +7,6 @@ import typescript from './typescript'; export default (lang, locale) => [ i18n(lang, locale), - consts(lang), base64(), themeColor(), tag(), diff --git a/webpack/plugins/consts.ts b/webpack/plugins/consts.ts new file mode 100644 index 000000000..7d1ff7c8d --- /dev/null +++ b/webpack/plugins/consts.ts @@ -0,0 +1,37 @@ +/** + * Constant Replacer + */ + +import * as webpack from 'webpack'; + +import version from '../../src/version'; +const constants = require('../../src/const.json'); +import config from '../../src/conf'; + +export default lang => { + const consts = { + _RECAPTCHA_SITEKEY_: config.recaptcha.site_key, + _SW_PUBLICKEY_: config.sw ? config.sw.public_key : null, + _THEME_COLOR_: constants.themeColor, + _VERSION_: version, + _STATUS_URL_: config.status_url, + _STATS_URL_: config.stats_url, + _ABOUT_URL_: config.about_url, + _API_URL_: config.api_url, + _DEV_URL_: config.dev_url, + _CH_URL_: config.ch_url, + _LANG_: lang, + _HOST_: config.host, + _URL_: config.url, + }; + + const _consts = {}; + + Object.keys(consts).forEach(key => { + _consts[key] = JSON.stringify(consts[key]); + }); + + return new webpack.DefinePlugin(Object.assign({}, _consts, { + __CONSTS__: JSON.stringify(consts) + })); +}; diff --git a/webpack/plugins/index.ts b/webpack/plugins/index.ts index 24782a1de..3d1416d1e 100644 --- a/webpack/plugins/index.ts +++ b/webpack/plugins/index.ts @@ -1,5 +1,6 @@ const StringReplacePlugin = require('string-replace-webpack-plugin'); +import consts from './consts'; import hoist from './hoist'; //import minify from './minify'; import banner from './banner'; @@ -9,6 +10,7 @@ const isProduction = env === 'production'; export default (version, lang) => { const plugins = [ + consts(lang), new StringReplacePlugin(), hoist() ];