summaryrefslogtreecommitdiff
path: root/webpack
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2017-11-23 06:51:32 +0900
committersyuilo <syuilotan@yahoo.co.jp>2017-11-23 06:51:32 +0900
commitdd85278d54e7bef392e44ccf22cf49fe595a36d6 (patch)
tree44c6f6425605a62ac427c4ca134f984146d7e206 /webpack
parentv3194 (diff)
downloadsharkey-dd85278d54e7bef392e44ccf22cf49fe595a36d6.tar.gz
sharkey-dd85278d54e7bef392e44ccf22cf49fe595a36d6.tar.bz2
sharkey-dd85278d54e7bef392e44ccf22cf49fe595a36d6.zip
Fix bug
Diffstat (limited to 'webpack')
-rw-r--r--webpack/module/rules/consts.ts41
-rw-r--r--webpack/module/rules/index.ts2
-rw-r--r--webpack/plugins/consts.ts37
-rw-r--r--webpack/plugins/index.ts2
4 files changed, 39 insertions, 43 deletions
diff --git a/webpack/module/rules/consts.ts b/webpack/module/rules/consts.ts
deleted file mode 100644
index 7f66106213..0000000000
--- 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 0006f622d2..9c1262b3d6 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 0000000000..7d1ff7c8d5
--- /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 24782a1de6..3d1416d1ea 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()
];