diff options
| author | syuilo <syuilotan@yahoo.co.jp> | 2017-11-23 05:43:00 +0900 |
|---|---|---|
| committer | syuilo <syuilotan@yahoo.co.jp> | 2017-11-23 05:43:00 +0900 |
| commit | 3f8ebac466ece8e9598432f3f574ec44e420c03b (patch) | |
| tree | 05114fce9728d6ce1deecc1f2eb8a903a22b0100 /webpack/module/rules | |
| parent | :v: (diff) | |
| download | sharkey-3f8ebac466ece8e9598432f3f574ec44e420c03b.tar.gz sharkey-3f8ebac466ece8e9598432f3f574ec44e420c03b.tar.bz2 sharkey-3f8ebac466ece8e9598432f3f574ec44e420c03b.zip | |
なんかもうめっちゃ変えた
Closes #940
Diffstat (limited to 'webpack/module/rules')
| -rw-r--r-- | webpack/module/rules/consts.ts | 36 | ||||
| -rw-r--r-- | webpack/module/rules/index.ts | 2 |
2 files changed, 38 insertions, 0 deletions
diff --git a/webpack/module/rules/consts.ts b/webpack/module/rules/consts.ts new file mode 100644 index 0000000000..2469ecf345 --- /dev/null +++ b/webpack/module/rules/consts.ts @@ -0,0 +1,36 @@ +/** + * 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_: JSON.stringify(config.sw.public_key), + _THEME_COLOR_: JSON.stringify(constants.themeColor), + _VERSION_: JSON.stringify(version), + _API_URL_: JSON.stringify(config.api_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 9c1262b3d6..0006f622d2 100644 --- a/webpack/module/rules/index.ts +++ b/webpack/module/rules/index.ts @@ -1,4 +1,5 @@ import i18n from './i18n'; +import consts from './consts'; import base64 from './base64'; import themeColor from './theme-color'; import tag from './tag'; @@ -7,6 +8,7 @@ import typescript from './typescript'; export default (lang, locale) => [ i18n(lang, locale), + consts(lang), base64(), themeColor(), tag(), |