summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2018-05-17 19:38:20 +0900
committersyuilo <syuilotan@yahoo.co.jp>2018-05-17 19:38:20 +0900
commit90a4fe471d06a4a0b598d947caff2ddd69d1ed5b (patch)
treeb60c544a60ddc737139e487415e14a02826f5efd
parent2.7.0 (diff)
downloadmisskey-90a4fe471d06a4a0b598d947caff2ddd69d1ed5b.tar.gz
misskey-90a4fe471d06a4a0b598d947caff2ddd69d1ed5b.tar.bz2
misskey-90a4fe471d06a4a0b598d947caff2ddd69d1ed5b.zip
:v:
-rw-r--r--package.json2
-rw-r--r--webpack.config.ts35
-rw-r--r--webpack/loaders/replace.js28
3 files changed, 33 insertions, 32 deletions
diff --git a/package.json b/package.json
index 724db93a7e..356ac1f517 100644
--- a/package.json
+++ b/package.json
@@ -209,7 +209,7 @@
"vue-cropperjs": "2.2.0",
"vue-js-modal": "1.3.13",
"vue-json-tree-view": "2.1.4",
- "vue-loader": "15.0.5",
+ "vue-loader": "15.0.11",
"vue-router": "3.0.1",
"vue-template-compiler": "2.5.16",
"vuedraggable": "2.16.0",
diff --git a/webpack.config.ts b/webpack.config.ts
index d56ed23972..3aeecbd8a7 100644
--- a/webpack.config.ts
+++ b/webpack.config.ts
@@ -146,27 +146,20 @@ module.exports = {
}, {
loader: 'replace',
query: {
- search: /%base64:(.+?)%/g.toString(),
- replace: 'base64replacement'
- }
- }, {
- loader: 'replace',
- query: {
- search: i18nPattern.toString(),
- replace: 'i18nReplacement',
- i18n: true
- }
- }, {
- loader: 'replace',
- query: {
- search: faPattern.toString(),
- replace: 'faReplacement'
- }
- }, {
- loader: 'replace',
- query: {
- search: /^<template>([\s\S]+?)\r?\n<\/template>/.toString(),
- replace: 'collapseSpacesReplacement'
+ qs: [{
+ search: /%base64:(.+?)%/g.toString(),
+ replace: 'base64replacement'
+ }, {
+ search: i18nPattern.toString(),
+ replace: 'i18nReplacement',
+ i18n: true
+ }, {
+ search: faPattern.toString(),
+ replace: 'faReplacement'
+ }, {
+ search: /^<template>([\s\S]+?)\r?\n<\/template>/.toString(),
+ replace: 'collapseSpacesReplacement'
+ }]
}
}]
}, {
diff --git a/webpack/loaders/replace.js b/webpack/loaders/replace.js
index d8a81c245a..fd6bb3617b 100644
--- a/webpack/loaders/replace.js
+++ b/webpack/loaders/replace.js
@@ -5,18 +5,26 @@ function trim(text, g) {
}
export default function(src) {
+ const fn = options => {
+ const search = options.search;
+ const g = search[search.length - 1] == 'g';
+ const file = this.resourcePath.replace(/\\/g, '/');
+ const replace = options.i18n ? global[options.replace].bind(null, {
+ src: file,
+ lang: options.lang
+ }) : global[options.replace];
+ if (typeof search != 'string' || search.length == 0) console.error('invalid search');
+ if (typeof replace != 'function') console.error('invalid replacer:', replace, this.request);
+ src = src.replace(new RegExp(trim(search, g), g ? 'g' : ''), replace);
+ };
+
this.cacheable();
const options = getOptions(this);
- const search = options.search;
- const g = search[search.length - 1] == 'g';
- const file = this.resourcePath.replace(/\\/g, '/');
- const replace = options.i18n ? global[options.replace].bind(null, {
- src: file,
- lang: options.lang
- }) : global[options.replace];
- if (typeof search != 'string' || search.length == 0) console.error('invalid search');
- if (typeof replace != 'function') console.error('invalid replacer:', replace, this.request);
- src = src.replace(new RegExp(trim(search, g), g ? 'g' : ''), replace);
+ if (options.qs) {
+ options.qs.forEach(q => fn(q));
+ } else {
+ fn(options);
+ }
this.callback(null, src);
return src;
}