wip
This commit is contained in:
parent
acfa2ef028
commit
58a6e647b3
12 changed files with 50 additions and 73 deletions
|
@ -117,6 +117,7 @@
|
|||
"gulp-typescript": "3.2.4",
|
||||
"gulp-uglify": "3.0.0",
|
||||
"gulp-util": "3.0.8",
|
||||
"hard-source-webpack-plugin": "^0.5.18",
|
||||
"highlight.js": "9.12.0",
|
||||
"html-minifier": "^3.5.9",
|
||||
"inquirer": "5.0.1",
|
||||
|
@ -145,6 +146,7 @@
|
|||
"recaptcha-promise": "0.1.3",
|
||||
"reconnecting-websocket": "3.2.2",
|
||||
"redis": "2.8.0",
|
||||
"replace-string-loader": "0.0.7",
|
||||
"request": "2.83.0",
|
||||
"rimraf": "2.6.2",
|
||||
"riot": "3.8.1",
|
||||
|
|
|
@ -3,17 +3,18 @@
|
|||
*/
|
||||
|
||||
import * as fs from 'fs';
|
||||
const StringReplacePlugin = require('string-replace-webpack-plugin');
|
||||
|
||||
export default () => ({
|
||||
enforce: 'pre',
|
||||
test: /\.(vue|js)$/,
|
||||
exclude: /node_modules/,
|
||||
loader: StringReplacePlugin.replace({
|
||||
replacements: [{
|
||||
pattern: /%base64:(.+?)%/g, replacement: (_, key) => {
|
||||
use: [{
|
||||
loader: 'replace-string-loader',
|
||||
options: {
|
||||
search: /%base64:(.+?)%/g,
|
||||
replace: (_, key) => {
|
||||
return fs.readFileSync(__dirname + '/../../../src/web/' + key, 'base64');
|
||||
}
|
||||
}
|
||||
}]
|
||||
})
|
||||
});
|
||||
|
|
|
@ -2,16 +2,17 @@
|
|||
* Replace fontawesome symbols
|
||||
*/
|
||||
|
||||
const StringReplacePlugin = require('string-replace-webpack-plugin');
|
||||
import { pattern, replacement } from '../../../src/common/build/fa';
|
||||
|
||||
export default () => ({
|
||||
enforce: 'pre',
|
||||
test: /\.(vue|js|ts)$/,
|
||||
exclude: /node_modules/,
|
||||
loader: StringReplacePlugin.replace({
|
||||
replacements: [{
|
||||
pattern, replacement
|
||||
use: [{
|
||||
loader: 'replace-string-loader',
|
||||
options: {
|
||||
search: pattern,
|
||||
replace: replacement
|
||||
}
|
||||
}]
|
||||
})
|
||||
});
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
* Replace i18n texts
|
||||
*/
|
||||
|
||||
const StringReplacePlugin = require('string-replace-webpack-plugin');
|
||||
import Replacer from '../../../src/common/build/i18n';
|
||||
|
||||
export default lang => {
|
||||
|
@ -12,10 +11,12 @@ export default lang => {
|
|||
enforce: 'pre',
|
||||
test: /\.(vue|js|ts)$/,
|
||||
exclude: /node_modules/,
|
||||
loader: StringReplacePlugin.replace({
|
||||
replacements: [{
|
||||
pattern: replacer.pattern, replacement: replacer.replacement
|
||||
use: [{
|
||||
loader: 'replace-string-loader',
|
||||
options: {
|
||||
search: replacer.pattern,
|
||||
replace: replacer.replacement
|
||||
}
|
||||
}]
|
||||
})
|
||||
};
|
||||
};
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
import i18n from './i18n';
|
||||
import license from './license';
|
||||
import fa from './fa';
|
||||
import base64 from './base64';
|
||||
//import base64 from './base64';
|
||||
import themeColor from './theme-color';
|
||||
import vue from './vue';
|
||||
import stylus from './stylus';
|
||||
|
@ -11,9 +10,8 @@ import collapseSpaces from './collapse-spaces';
|
|||
export default lang => [
|
||||
collapseSpaces(),
|
||||
i18n(lang),
|
||||
license(),
|
||||
fa(),
|
||||
base64(),
|
||||
//base64(),
|
||||
themeColor(),
|
||||
vue(),
|
||||
stylus(),
|
||||
|
|
|
@ -1,17 +0,0 @@
|
|||
/**
|
||||
* Inject license
|
||||
*/
|
||||
|
||||
const StringReplacePlugin = require('string-replace-webpack-plugin');
|
||||
import { licenseHtml } from '../../../src/common/build/license';
|
||||
|
||||
export default () => ({
|
||||
enforce: 'pre',
|
||||
test: /\.(vue|js)$/,
|
||||
exclude: /node_modules/,
|
||||
loader: StringReplacePlugin.replace({
|
||||
replacements: [{
|
||||
pattern: '%license%', replacement: () => licenseHtml
|
||||
}]
|
||||
})
|
||||
});
|
|
@ -2,24 +2,24 @@
|
|||
* Theme color provider
|
||||
*/
|
||||
|
||||
const StringReplacePlugin = require('string-replace-webpack-plugin');
|
||||
|
||||
const constants = require('../../../src/const.json');
|
||||
|
||||
export default () => ({
|
||||
enforce: 'pre',
|
||||
test: /\.vue$/,
|
||||
exclude: /node_modules/,
|
||||
loader: StringReplacePlugin.replace({
|
||||
replacements: [
|
||||
{
|
||||
pattern: /\$theme\-color\-foreground/g,
|
||||
replacement: () => constants.themeColorForeground
|
||||
},
|
||||
{
|
||||
pattern: /\$theme\-color/g,
|
||||
replacement: () => constants.themeColor
|
||||
},
|
||||
]
|
||||
})
|
||||
use: [/*{
|
||||
loader: 'replace-string-loader',
|
||||
options: {
|
||||
search: /\$theme\-color\-foreground/g,
|
||||
replace: constants.themeColorForeground
|
||||
}
|
||||
}, */{
|
||||
loader: 'replace-string-loader',
|
||||
options: {
|
||||
search: '$theme-color',
|
||||
replace: constants.themeColor,
|
||||
flags: 'g'
|
||||
}
|
||||
}]
|
||||
});
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
|
||||
export default () => ({
|
||||
test: /\.ts$/,
|
||||
exclude: /node_modules/,
|
||||
loader: 'ts-loader',
|
||||
options: {
|
||||
configFile: __dirname + '/../../../src/web/app/tsconfig.json',
|
||||
|
|
|
@ -1,10 +0,0 @@
|
|||
import * as os from 'os';
|
||||
import * as webpack from 'webpack';
|
||||
|
||||
export default version => new webpack.BannerPlugin({
|
||||
banner:
|
||||
`Misskey v${version} | MIT Licensed, (c) syuilo 2014-2018\n` +
|
||||
'https://github.com/syuilo/misskey\n' +
|
||||
`built by ${os.hostname()} at ${new Date()}\n` +
|
||||
'hash:[hash], chunkhash:[chunkhash]'
|
||||
});
|
|
@ -7,6 +7,7 @@ import * as webpack from 'webpack';
|
|||
import version from '../../src/version';
|
||||
const constants = require('../../src/const.json');
|
||||
import config from '../../src/conf';
|
||||
import { licenseHtml } from '../../src/common/build/license';
|
||||
|
||||
export default lang => {
|
||||
const consts = {
|
||||
|
@ -24,6 +25,7 @@ export default lang => {
|
|||
_LANG_: lang,
|
||||
_HOST_: config.host,
|
||||
_URL_: config.url,
|
||||
_LICENSE_: licenseHtml
|
||||
};
|
||||
|
||||
const _consts = {};
|
||||
|
@ -32,7 +34,5 @@ export default lang => {
|
|||
_consts[key] = JSON.stringify(consts[key]);
|
||||
});
|
||||
|
||||
return new webpack.DefinePlugin(Object.assign({}, _consts, {
|
||||
__CONSTS__: JSON.stringify(consts)
|
||||
}));
|
||||
return new webpack.DefinePlugin(_consts);
|
||||
};
|
||||
|
|
|
@ -1,17 +1,16 @@
|
|||
const StringReplacePlugin = require('string-replace-webpack-plugin');
|
||||
const HardSourceWebpackPlugin = require('hard-source-webpack-plugin');
|
||||
|
||||
import consts from './consts';
|
||||
import hoist from './hoist';
|
||||
import minify from './minify';
|
||||
import banner from './banner';
|
||||
|
||||
const env = process.env.NODE_ENV;
|
||||
const isProduction = env === 'production';
|
||||
|
||||
export default (version, lang) => {
|
||||
const plugins = [
|
||||
consts(lang),
|
||||
new StringReplacePlugin()
|
||||
new HardSourceWebpackPlugin(),
|
||||
consts(lang)
|
||||
];
|
||||
|
||||
if (isProduction) {
|
||||
|
@ -19,7 +18,5 @@ export default (version, lang) => {
|
|||
plugins.push(minify());
|
||||
}
|
||||
|
||||
plugins.push(banner(version));
|
||||
|
||||
return plugins;
|
||||
};
|
||||
|
|
|
@ -40,6 +40,9 @@ module.exports = Object.keys(langs).map(lang => {
|
|||
'.js', '.ts'
|
||||
]
|
||||
},
|
||||
cache: true
|
||||
cache: true,
|
||||
devtool: 'eval',
|
||||
stats: true,
|
||||
profile: true
|
||||
};
|
||||
});
|
||||
|
|
Loading…
Reference in a new issue