From a7601f7aa493db5d96b66fbbf79e92ff54c4ff28 Mon Sep 17 00:00:00 2001 From: syuilo <syuilotan@yahoo.co.jp> Date: Thu, 15 Feb 2018 23:07:19 +0900 Subject: [PATCH] wip --- package.json | 2 ++ webpack/module/rules/base64.ts | 14 ++++++------- webpack/module/rules/collapse-spaces.ts | 23 ++++++++++---------- webpack/module/rules/fa.ts | 12 +++++------ webpack/module/rules/i18n.ts | 12 +++++------ webpack/module/rules/index.ts | 8 +++---- webpack/module/rules/theme-color.ts | 26 ----------------------- webpack/module/rules/vue.ts | 28 ++++++++++++++++++++----- 8 files changed, 55 insertions(+), 70 deletions(-) delete mode 100644 webpack/module/rules/theme-color.ts diff --git a/package.json b/package.json index bf924dcdb0..06e517a0d1 100644 --- a/package.json +++ b/package.json @@ -157,6 +157,7 @@ "serve-favicon": "2.4.5", "sortablejs": "1.7.0", "speakeasy": "2.0.0", + "string-replace-loader": "^1.3.0", "string-replace-webpack-plugin": "0.1.3", "style-loader": "0.20.1", "stylus": "0.54.5", @@ -182,6 +183,7 @@ "vue-template-compiler": "^2.5.13", "web-push": "3.2.5", "webpack": "3.10.0", + "webpack-replace-loader": "^1.3.0", "websocket": "1.0.25", "xev": "2.0.0" } diff --git a/webpack/module/rules/base64.ts b/webpack/module/rules/base64.ts index 886f0e8b38..c2f6b9339e 100644 --- a/webpack/module/rules/base64.ts +++ b/webpack/module/rules/base64.ts @@ -8,13 +8,11 @@ export default () => ({ enforce: 'pre', test: /\.(vue|js)$/, exclude: /node_modules/, - use: [{ - loader: 'replace-string-loader', - options: { - search: /%base64:(.+?)%/g, - replace: (_, key) => { - return fs.readFileSync(__dirname + '/../../../src/web/' + key, 'base64'); - } + loader: 'string-replace-loader', + query: { + search: /%base64:(.+?)%/g, + replace: (_, key) => { + return fs.readFileSync(__dirname + '/../../../src/web/' + key, 'base64'); } - }] + } }); diff --git a/webpack/module/rules/collapse-spaces.ts b/webpack/module/rules/collapse-spaces.ts index 48fd57f017..734c735926 100644 --- a/webpack/module/rules/collapse-spaces.ts +++ b/webpack/module/rules/collapse-spaces.ts @@ -1,20 +1,19 @@ import * as fs from 'fs'; const minify = require('html-minifier').minify; -const StringReplacePlugin = require('string-replace-webpack-plugin'); export default () => ({ enforce: 'pre', test: /\.vue$/, exclude: /node_modules/, - loader: StringReplacePlugin.replace({ - replacements: [{ - pattern: /^<template>([\s\S]+?)\r?\n<\/template>/, replacement: html => { - return minify(html, { - collapseWhitespace: true, - collapseInlineTagWhitespace: true, - keepClosingSlash: true - }); - } - }] - }) + loader: 'string-replace-loader', + query: { + search: /^<template>([\s\S]+?)\r?\n<\/template>/, + replace: html => { + return minify(html, { + collapseWhitespace: true, + collapseInlineTagWhitespace: true, + keepClosingSlash: true + }); + } + } }); diff --git a/webpack/module/rules/fa.ts b/webpack/module/rules/fa.ts index 56ca19d4b4..2ac89ce4f8 100644 --- a/webpack/module/rules/fa.ts +++ b/webpack/module/rules/fa.ts @@ -8,11 +8,9 @@ export default () => ({ enforce: 'pre', test: /\.(vue|js|ts)$/, exclude: /node_modules/, - use: [{ - loader: 'replace-string-loader', - options: { - search: pattern, - replace: replacement - } - }] + loader: 'string-replace-loader', + query: { + search: pattern, + replace: replacement + } }); diff --git a/webpack/module/rules/i18n.ts b/webpack/module/rules/i18n.ts index 1bd771f43b..2352a42be0 100644 --- a/webpack/module/rules/i18n.ts +++ b/webpack/module/rules/i18n.ts @@ -11,12 +11,10 @@ export default lang => { enforce: 'pre', test: /\.(vue|js|ts)$/, exclude: /node_modules/, - use: [{ - loader: 'replace-string-loader', - options: { - search: replacer.pattern, - replace: replacer.replacement - } - }] + loader: 'string-replace-loader', + query: { + search: replacer.pattern, + replace: replacer.replacement + } }; }; diff --git a/webpack/module/rules/index.ts b/webpack/module/rules/index.ts index c4442b06cd..1ddebacffa 100644 --- a/webpack/module/rules/index.ts +++ b/webpack/module/rules/index.ts @@ -1,18 +1,16 @@ import i18n from './i18n'; import fa from './fa'; //import base64 from './base64'; -import themeColor from './theme-color'; import vue from './vue'; import stylus from './stylus'; import typescript from './typescript'; import collapseSpaces from './collapse-spaces'; export default lang => [ - collapseSpaces(), - i18n(lang), - fa(), + //collapseSpaces(), + //i18n(lang), + //fa(), //base64(), - themeColor(), vue(), stylus(), typescript() diff --git a/webpack/module/rules/theme-color.ts b/webpack/module/rules/theme-color.ts deleted file mode 100644 index 4828e00ec7..0000000000 --- a/webpack/module/rules/theme-color.ts +++ /dev/null @@ -1,26 +0,0 @@ -/** - * Theme color provider - */ - -const constants = require('../../../src/const.json'); - -export default () => ({ - enforce: 'pre', - test: /\.vue$/, - exclude: /node_modules/, - use: [{ - loader: 'replace-string-loader', - options: { - search: '$theme-color-foreground', - replace: constants.themeColorForeground, - flags: 'g' - } - }, { - loader: 'replace-string-loader', - options: { - search: '$theme-color', - replace: constants.themeColor, - flags: 'g' - } - }] -}); diff --git a/webpack/module/rules/vue.ts b/webpack/module/rules/vue.ts index 02d644615c..990f839915 100644 --- a/webpack/module/rules/vue.ts +++ b/webpack/module/rules/vue.ts @@ -2,12 +2,30 @@ * Vue */ +const constants = require('../../../src/const.json'); + export default () => ({ test: /\.vue$/, exclude: /node_modules/, - loader: 'vue-loader', - options: { - cssSourceMap: false, - preserveWhitespace: false - } + use: [{ + loader: 'vue-loader', + options: { + cssSourceMap: false, + preserveWhitespace: false + } + }, { + loader: 'webpack-replace-loader', + options: { + search: '$theme-color', + replace: constants.themeColor, + attr: 'g' + } + }, { + loader: 'webpack-replace-loader', + query: { + search: '$theme-color-foreground', + replace: constants.themeColorForeground, + attr: 'g' + } + }] }); -- GitLab