This commit is contained in:
syuilo
2018-02-18 15:27:06 +09:00
parent 2f3f97a12c
commit 62fd58fbc8
5 changed files with 41 additions and 19 deletions

View File

@ -1,17 +1,18 @@
const loaderUtils = require('loader-utils');
function trim(text) {
return text.substring(1, text.length - 2);
function trim(text, g) {
return text.substring(1, text.length - (g ? 2 : 0));
}
module.exports = function(src) {
this.cacheable();
const options = loaderUtils.getOptions(this);
const search = options.search;
const g = search[search.length - 1] == 'g';
const replace = 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'), replace);
src = src.replace(new RegExp(trim(search, g), g ? 'g' : ''), replace);
this.callback(null, src);
return src;
};

View File

@ -9,7 +9,7 @@ const isProduction = env === 'production';
export default (version, lang) => {
const plugins = [
new HardSourceWebpackPlugin(),
//new HardSourceWebpackPlugin(),
consts(lang)
];

View File

@ -2,6 +2,7 @@
* webpack configuration
*/
const minify = require('html-minifier').minify;
import I18nReplacer from '../src/common/build/i18n';
import { pattern as faPattern, replacement as faReplacement } from '../src/common/build/fa';
const constants = require('../src/const.json');
@ -13,6 +14,14 @@ import version from '../src/version';
global['faReplacement'] = faReplacement;
global['collapseSpacesReplacement'] = html => {
return minify(html, {
collapseWhitespace: true,
collapseInlineTagWhitespace: true,
keepClosingSlash: true
});
};
module.exports = Object.keys(langs).map(lang => {
// Chunk name
const name = lang;
@ -44,7 +53,7 @@ module.exports = Object.keys(langs).map(lang => {
rules: [{
test: /\.vue$/,
exclude: /node_modules/,
use: [{
use: [/*'cache-loader', */{
loader: 'vue-loader',
options: {
cssSourceMap: false,
@ -76,6 +85,12 @@ module.exports = Object.keys(langs).map(lang => {
search: faPattern.toString(),
replace: 'faReplacement'
}
}, {
loader: 'replace',
query: {
search: /^<template>([\s\S]+?)\r?\n<\/template>/.toString(),
replace: 'collapseSpacesReplacement'
}
}]
}, {
test: /\.styl$/,