updated 压缩工具由webpack换成rollup

This commit is contained in:
PASSER-BY 2023-03-07 01:00:38 +08:00
parent c97ecf5f40
commit c9fa49e2cd
9 changed files with 737 additions and 2265 deletions

View File

@ -1 +1 @@
!function(s,d){"object"==typeof exports&&"object"==typeof module?module.exports=d():"function"==typeof define&&define.amd?define([],d):"object"==typeof exports?exports.relationshipMode=d():s.relationshipMode=d()}(this,(()=>(()=>{"use strict";var s={d:(d,f)=>{for(var m in f)s.o(f,m)&&!s.o(d,m)&&Object.defineProperty(d,m,{enumerable:!0,get:f[m]})},o:(s,d)=>Object.prototype.hasOwnProperty.call(s,d)},d={};s.d(d,{default:()=>f});const f={guangdong:{name:"广东",data:{f:["老窦"],"f,f":["阿爷"],"f,f,f":["太公"],"f,f,m":["太婆"],"f,m":["阿嫲"],"f,m,f":["太外公"],"f,m,m":["太外婆"],"f,ob":["伯伯"],"f,ob,w":["伯娘"],"f,lb":["阿叔"],"f,lb,w":["阿婶"],"0,f,xb,d,s":["堂姨甥"],"1,f,xb,d,s":["堂外甥"],"0,f,xb,d,d":["堂姨甥女"],"1,f,xb,d,d":["堂外甥女"],"f,os":["姑母"],"f,ls":["姑姐"],"f,xs,h":["姑丈"],"0,f,xs,d,s":["姑表姨甥"],"1,f,xs,d,s":["姑表外甥"],"0,f,xs,d,d":["姑表姨甥女"],"1,f,xs,d,d":["姑表外甥女"],m:["老母"],"m,f":["阿公"],"m,f,f":["外太公"],"m,f,m":["外太婆"],"m,m":["阿婆"],"m,m,f":["外太外公"],"m,m,m":["外太外婆"],"m,ob":["舅父"],"m,lb":["舅仔"],"m,xb,w":["舅母"],"0,m,xb,d,s":["舅表姨甥"],"1,m,xb,d,s":["舅表外甥"],"0,m,xb,d,d":["舅表姨甥女"],"1,m,xb,d,d":["舅表外甥女"],"m,os":["姨妈"],"m,ls":["姨仔"],"m,xs,h":["姨丈"],"0,m,xb,d,s":["姨姨甥"],"1,m,xb,d,s":["姨外甥"],"0,m,xb,d,d":["姨姨甥女"],"1,m,xb,d,d":["姨外甥女"],ob:["大佬"],"ob,w":["阿嫂"],lb:["细佬"],"lb,w":["弟妇"],"xb,s":["侄"],"xb,d":["侄女"],os:["家姐"],"os,h":["姐夫"],ls:["阿妹"],"ls,h":["妹夫"],"0,xs,s":["姨甥"],"1,xs,s":["外甥"],"0,xs,d":["姨甥女"],"1,xs,d":["外甥女"],s:["仔"],"s,w":["新妇"],"s,s":["孙"],"s,s,w":["孙新妇"],"s,s,s":["息仔"],"s,s,d":["息女"],"s,d":["孙女"],"s,d,h":["孙女婿"],"s,d,s":["外息仔"],"s,d,d":["外息女"],d:["女"],"d,s":["外孙"],"d,s,w":["外孙新妇"],"d,s,s":["外息仔"],"d,s,d":["外息女"],"d,d":["外孙女"],"d,d,h":["外孙女婿"],"d,d,s":["外息仔"],"d,d,d":["外息女"]}},north:{name:"北方",data:{"m,m":["姥姥"],"m,m,xs":["姨姥姥"],"m,m,xs,h":["姨姥爷"],"m,m,xb":["舅姥爷"],"m,m,xb,w":["舅姥姥"],"m,f":["姥爷"],"m,f,xs":["姑姥姥"],"m,f,xs,h":["姑姥爷"],"m,f,ob":["大姥爷"],"m,f,ob,w":["大姥姥"],"m,f,lb":["小姥爷"],"m,f,lb,w":["小姥姥"],"f,ob":["大爷"],"f,ob,w":["大娘"]}}};return d=d.default})()));
!function(s,d){"object"==typeof exports&&"undefined"!=typeof module?module.exports=d():"function"==typeof define&&define.amd?define(d):(s="undefined"!=typeof globalThis?globalThis:s||self).relationshipMode=d()}(this,(function(){"use strict";return{guangdong:{name:"广东",data:{f:["老窦"],"f,f":["阿爷"],"f,f,f":["太公"],"f,f,m":["太婆"],"f,m":["阿嫲"],"f,m,f":["太外公"],"f,m,m":["太外婆"],"f,ob":["伯伯"],"f,ob,w":["伯娘"],"f,lb":["阿叔"],"f,lb,w":["阿婶"],"0,f,xb,d,s":["堂姨甥"],"1,f,xb,d,s":["堂外甥"],"0,f,xb,d,d":["堂姨甥女"],"1,f,xb,d,d":["堂外甥女"],"f,os":["姑母"],"f,ls":["姑姐"],"f,xs,h":["姑丈"],"0,f,xs,d,s":["姑表姨甥"],"1,f,xs,d,s":["姑表外甥"],"0,f,xs,d,d":["姑表姨甥女"],"1,f,xs,d,d":["姑表外甥女"],m:["老母"],"m,f":["阿公"],"m,f,f":["外太公"],"m,f,m":["外太婆"],"m,m":["阿婆"],"m,m,f":["外太外公"],"m,m,m":["外太外婆"],"m,ob":["舅父"],"m,lb":["舅仔"],"m,xb,w":["舅母"],"0,m,xb,d,s":["舅表姨甥"],"1,m,xb,d,s":["舅表外甥"],"0,m,xb,d,d":["舅表姨甥女"],"1,m,xb,d,d":["舅表外甥女"],"m,os":["姨妈"],"m,ls":["姨仔"],"m,xs,h":["姨丈"],"0,m,xb,d,s":["姨姨甥"],"1,m,xb,d,s":["姨外甥"],"0,m,xb,d,d":["姨姨甥女"],"1,m,xb,d,d":["姨外甥女"],ob:["大佬"],"ob,w":["阿嫂"],lb:["细佬"],"lb,w":["弟妇"],"xb,s":["侄"],"xb,d":["侄女"],os:["家姐"],"os,h":["姐夫"],ls:["阿妹"],"ls,h":["妹夫"],"0,xs,s":["姨甥"],"1,xs,s":["外甥"],"0,xs,d":["姨甥女"],"1,xs,d":["外甥女"],s:["仔"],"s,w":["新妇"],"s,s":["孙"],"s,s,w":["孙新妇"],"s,s,s":["息仔"],"s,s,d":["息女"],"s,d":["孙女"],"s,d,h":["孙女婿"],"s,d,s":["外息仔"],"s,d,d":["外息女"],d:["女"],"d,s":["外孙"],"d,s,w":["外孙新妇"],"d,s,s":["外息仔"],"d,s,d":["外息女"],"d,d":["外孙女"],"d,d,h":["外孙女婿"],"d,d,s":["外息仔"],"d,d,d":["外息女"]}},north:{name:"北方",data:{"m,m":["姥姥"],"m,m,xs":["姨姥姥"],"m,m,xs,h":["姨姥爷"],"m,m,xb":["舅姥爷"],"m,m,xb,w":["舅姥姥"],"m,f":["姥爷"],"m,f,xs":["姑姥姥"],"m,f,xs,h":["姑姥爷"],"m,f,ob":["大姥爷"],"m,f,ob,w":["大姥姥"],"m,f,lb":["小姥爷"],"m,f,lb,w":["小姥姥"],"f,ob":["大爷"],"f,ob,w":["大娘"]}}}}));

View File

@ -1 +1 @@
!function(s,d){"object"==typeof exports&&"object"==typeof module?module.exports=d():"function"==typeof define&&define.amd?define([],d):"object"==typeof exports?exports.relationshipMode=d():s.relationshipMode=d()}(this,(()=>(()=>{"use strict";var s={d:(d,f)=>{for(var m in f)s.o(f,m)&&!s.o(d,m)&&Object.defineProperty(d,m,{enumerable:!0,get:f[m]})},o:(s,d)=>Object.prototype.hasOwnProperty.call(s,d)},d={};s.d(d,{default:()=>f});const f={guangdong:{name:"廣東",data:{f:["老竇"],"f,f":["阿爺"],"f,f,f":["太公"],"f,f,m":["太婆"],"f,m":["阿嫲"],"f,m,f":["太外公"],"f,m,m":["太外婆"],"f,ob":["伯伯"],"f,ob,w":["伯娘"],"f,lb":["阿叔"],"f,lb,w":["阿嬸"],"0,f,xb,d,s":["堂姨甥"],"1,f,xb,d,s":["堂外甥"],"0,f,xb,d,d":["堂姨甥女"],"1,f,xb,d,d":["堂外甥女"],"f,os":["姑母"],"f,ls":["姑姐"],"f,xs,h":["姑丈"],"0,f,xs,d,s":["姑表姨甥"],"1,f,xs,d,s":["姑表外甥"],"0,f,xs,d,d":["姑表姨甥女"],"1,f,xs,d,d":["姑表外甥女"],m:["老母"],"m,f":["阿公"],"m,f,f":["外太公"],"m,f,m":["外太婆"],"m,m":["阿婆"],"m,m,f":["外太外公"],"m,m,m":["外太外婆"],"m,ob":["舅父"],"m,lb":["舅仔"],"m,xb,w":["舅母"],"0,m,xb,d,s":["舅表姨甥"],"1,m,xb,d,s":["舅表外甥"],"0,m,xb,d,d":["舅表姨甥女"],"1,m,xb,d,d":["舅表外甥女"],"m,os":["姨媽"],"m,ls":["姨仔"],"m,xs,h":["姨丈"],"0,m,xb,d,s":["姨姨甥"],"1,m,xb,d,s":["姨外甥"],"0,m,xb,d,d":["姨姨甥女"],"1,m,xb,d,d":["姨外甥女"],ob:["大佬"],"ob,w":["阿嫂"],lb:["細佬"],"lb,w":["弟婦"],"xb,s":["侄"],"xb,d":["侄女"],os:["家姐"],"os,h":["姐夫"],ls:["阿妹"],"ls,h":["妹夫"],"0,xs,s":["姨甥"],"1,xs,s":["外甥"],"0,xs,d":["姨甥女"],"1,xs,d":["外甥女"],s:["仔"],"s,w":["新婦"],"s,s":["孫"],"s,s,w":["孫新婦"],"s,s,s":["息仔"],"s,s,d":["息女"],"s,d":["孫女"],"s,d,h":["孫女婿"],"s,d,s":["外息仔"],"s,d,d":["外息女"],d:["女"],"d,s":["外孫"],"d,s,w":["外孫新婦"],"d,s,s":["外息仔"],"d,s,d":["外息女"],"d,d":["外孫女"],"d,d,h":["外孫女婿"],"d,d,s":["外息仔"],"d,d,d":["外息女"]}},north:{name:"北方",data:{"m,m":["姥姥"],"m,m,xs":["姨姥姥"],"m,m,xs,h":["姨姥爺"],"m,m,xb":["舅姥爺"],"m,m,xb,w":["舅姥姥"],"m,f":["姥爺"],"m,f,xs":["姑姥姥"],"m,f,xs,h":["姑姥爺"],"m,f,ob":["大姥爺"],"m,f,ob,w":["大姥姥"],"m,f,lb":["小姥爺"],"m,f,lb,w":["小姥姥"],"f,ob":["大爺"],"f,ob,w":["大娘"]}}};return d=d.default})()));
!function(s,d){"object"==typeof exports&&"undefined"!=typeof module?module.exports=d():"function"==typeof define&&define.amd?define(d):(s="undefined"!=typeof globalThis?globalThis:s||self).relationshipMode=d()}(this,(function(){"use strict";return{guangdong:{name:"廣東",data:{f:["老竇"],"f,f":["阿爺"],"f,f,f":["太公"],"f,f,m":["太婆"],"f,m":["阿嫲"],"f,m,f":["太外公"],"f,m,m":["太外婆"],"f,ob":["伯伯"],"f,ob,w":["伯娘"],"f,lb":["阿叔"],"f,lb,w":["阿嬸"],"0,f,xb,d,s":["堂姨甥"],"1,f,xb,d,s":["堂外甥"],"0,f,xb,d,d":["堂姨甥女"],"1,f,xb,d,d":["堂外甥女"],"f,os":["姑母"],"f,ls":["姑姐"],"f,xs,h":["姑丈"],"0,f,xs,d,s":["姑表姨甥"],"1,f,xs,d,s":["姑表外甥"],"0,f,xs,d,d":["姑表姨甥女"],"1,f,xs,d,d":["姑表外甥女"],m:["老母"],"m,f":["阿公"],"m,f,f":["外太公"],"m,f,m":["外太婆"],"m,m":["阿婆"],"m,m,f":["外太外公"],"m,m,m":["外太外婆"],"m,ob":["舅父"],"m,lb":["舅仔"],"m,xb,w":["舅母"],"0,m,xb,d,s":["舅表姨甥"],"1,m,xb,d,s":["舅表外甥"],"0,m,xb,d,d":["舅表姨甥女"],"1,m,xb,d,d":["舅表外甥女"],"m,os":["姨媽"],"m,ls":["姨仔"],"m,xs,h":["姨丈"],"0,m,xb,d,s":["姨姨甥"],"1,m,xb,d,s":["姨外甥"],"0,m,xb,d,d":["姨姨甥女"],"1,m,xb,d,d":["姨外甥女"],ob:["大佬"],"ob,w":["阿嫂"],lb:["細佬"],"lb,w":["弟婦"],"xb,s":["侄"],"xb,d":["侄女"],os:["家姐"],"os,h":["姐夫"],ls:["阿妹"],"ls,h":["妹夫"],"0,xs,s":["姨甥"],"1,xs,s":["外甥"],"0,xs,d":["姨甥女"],"1,xs,d":["外甥女"],s:["仔"],"s,w":["新婦"],"s,s":["孫"],"s,s,w":["孫新婦"],"s,s,s":["息仔"],"s,s,d":["息女"],"s,d":["孫女"],"s,d,h":["孫女婿"],"s,d,s":["外息仔"],"s,d,d":["外息女"],d:["女"],"d,s":["外孫"],"d,s,w":["外孫新婦"],"d,s,s":["外息仔"],"d,s,d":["外息女"],"d,d":["外孫女"],"d,d,h":["外孫女婿"],"d,d,s":["外息仔"],"d,d,d":["外息女"]}},north:{name:"北方",data:{"m,m":["姥姥"],"m,m,xs":["姨姥姥"],"m,m,xs,h":["姨姥爺"],"m,m,xb":["舅姥爺"],"m,m,xb,w":["舅姥姥"],"m,f":["姥爺"],"m,f,xs":["姑姥姥"],"m,f,xs,h":["姑姥爺"],"m,f,ob":["大姥爺"],"m,f,ob,w":["大姥姥"],"m,f,lb":["小姥爺"],"m,f,lb,w":["小姥姥"],"f,ob":["大爺"],"f,ob,w":["大娘"]}}}}));

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,21 +1,72 @@
const fs = require('fs');
const gulp = require('gulp');
const rename = require("gulp-rename");
const cht = require('gulp-cht');
const rollup = require('rollup');
const terser = require('@rollup/plugin-terser');
const pkg = require('./package');
gulp.task('mini', () => {
// copyright
var repository = pkg.repository.url.replace(/(.+)(:\/\/.+)\.git$/,'https$2');
var now = new Date();
var date = (new Date(now.getTime()-now.getTimezoneOffset()*60000)).toISOString().substr(0,10);
var banner = `/*!
* ${pkg.name} v${pkg.version}
* ${pkg.description}
* ${pkg.homepage}
*
* Copyright (c) 2016-present, ${pkg.author}
*
* Released under the ${pkg.license} License
* ${repository}
*
* Created on: ${date}
*/`;
gulp.task('build', () => {
return rollup.rollup({
input: './src/relationship.js',
plugins: [
terser()
]
}).then(bundle => {
return bundle.write({
file: './dist/relationship.min.js',
format: 'umd',
name: 'relationship',
banner
});
});
});
gulp.task('mode', () => {
return rollup.rollup({
input: './src/relationship-mode.js',
plugins: [
terser()
]
}).then(bundle => {
return bundle.write({
file: './dist/relationship-mode.min.js',
format: 'umd',
name: 'relationshipMode',
});
});
});
gulp.task('localization', () => {
// gulp.src('./index.html')
// .pipe(cht())
// .pipe(rename("zh-HK.html"))
// .pipe(gulp.dest("./"));
gulp.src('dist/relationship-mode.min.js')
.pipe(cht())
.pipe(rename("relationship-mode.zh-HK.min.js"))
.pipe(gulp.dest('dist/'))
return gulp.src('dist/relationship.min.js')
.pipe(cht())
.pipe(rename("relationship.zh-HK.min.js"))
return gulp.src([
'dist/relationship.min.js',
'dist/relationship-mode.min.js',
]).pipe(cht())
.pipe(rename(function(path) {
path.basename = path.basename.replace('.min','.zh-HK.min');
}))
.pipe(gulp.dest('dist/'))
});
gulp.task('default', gulp.series(['build', 'mode', 'localization']))

2823
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -22,16 +22,16 @@
"url": "https://github.com/mumuy/relationship/issues"
},
"devDependencies": {
"@rollup/plugin-terser": "^0.4.0",
"gulp": "^4.0.2",
"gulp-cht": "^2.0.20",
"gulp-rename": "^2.0.0",
"tape": "^5.3.1",
"webpack": "^5.74.0",
"webpack-cli": "^4.10.0"
"rollup": "^3.18.0",
"tape": "^5.3.1"
},
"scripts": {
"test": "node test/index.js",
"build": "webpack && gulp mini && npm run test"
"build": "gulp && npm run test"
},
"homepage": "https://passer-by.com/relationship/",
"directories": {

View File

@ -1,14 +1,16 @@
import {getOptions} from './module/options';
import {getSelectors,mergeSelector,selector2id} from './module/selector';
import {reverseId,getItemsById,getChainById,getPairsById} from './module/id';
import {setModeData,getModeData,modeData as _data} from './module/mode';
import {setModeData,getModeData,modeData} from './module/mode';
let _data = modeData;
// 对外方法
var relationship = function (parameter){
let relationship = function (parameter){
if(typeof parameter =='string'){
parameter = getOptions(parameter);
}
var options = Object.assign({
let options = Object.assign({
text:'', // 目标对象:目标对象的称谓汉字表达,称谓间用‘的’字分隔
target:'', // 相对对象:相对对象的称谓汉字表达,称谓间用‘的’字分隔,空表示自己
sex:-1, // 本人性别0表示女性,1表示男性
@ -18,12 +20,12 @@ var relationship = function (parameter){
optimal:false // 最短关系:计算两者之间的最短关系
},parameter);
_data = getModeData(options.mode);
var from_selectors = getSelectors(options.text);
var to_selectors = getSelectors(options.target);
let from_selectors = getSelectors(options.text);
let to_selectors = getSelectors(options.target);
if(!to_selectors.length){
to_selectors = [''];
}
var result = []; //匹配结果
let result = []; //匹配结果
// console.log('[selectors]',from_selectors,to_selectors);
from_selectors.forEach(function(from_selector){
to_selectors.forEach(function(to_selector){
@ -34,11 +36,11 @@ var relationship = function (parameter){
optimal:options.optimal
}).forEach(function(data){
// console.log('[data]',from_selector,to_selector,options.optimal,data);
var ids = data?selector2id(data['selector'],data['sex']):[];
let ids = data?selector2id(data['selector'],data['sex']):[];
// console.log('[ids]',data['selector'],data['sex'],ids);
ids.forEach(function(id){
var temps = [id];
var sex = data['sex'];
let temps = [id];
let sex = data['sex'];
if(options.reverse){
temps = reverseId(id,sex);
if(id.match(/([fhs1](&[ol\d]+)?|[olx]b)$/)){
@ -49,7 +51,7 @@ var relationship = function (parameter){
}
if(options.type=='chain'){
temps.forEach(function(id){
var item = getChainById(id,data['sex']);
let item = getChainById(id,data['sex']);
if(item){
result.push(item);
}
@ -57,12 +59,12 @@ var relationship = function (parameter){
}else if(options.type=='pair'){
temps = reverseId(id,data['sex']);
temps.forEach(function(r_id){
var pairs = getPairsById(id,r_id);
let pairs = getPairsById(id,r_id);
result = result.concat(pairs);
});
}else{
temps.forEach(function(id){
var items = getItemsById(id);
let items = getItemsById(id);
if(!items.length){
items = getItemsById(sex+','+id);
}

View File

@ -1,62 +0,0 @@
var path = require('path');
var webpack = require('webpack');
const TerserJSPlugin = require('terser-webpack-plugin');
const pkg = require('./package');
var repository = pkg.repository.url.replace(/(.+)(:\/\/.+)\.git$/,'https$2');
var now = new Date();
var date = (new Date(now.getTime()-now.getTimezoneOffset()*60000)).toISOString().substr(0,10);
var copyright = `${pkg.name} v${pkg.version}
${pkg.description}
${pkg.homepage}
Copyright (c) 2016-present, ${pkg.author}
Released under the ${pkg.license} License
${repository}
Created on: ${date}`;
module.exports = [
{
mode: 'production',
entry: './src/relationship.js',
output: {
path: path.resolve(__dirname,'dist'),
filename: 'relationship.min.js',
globalObject: 'this',
library: 'relationship',
libraryTarget: 'umd',
libraryExport:'default'
},
plugins: [
new webpack.BannerPlugin(copyright)
],
optimization: {
minimizer: [
new TerserJSPlugin({
extractComments: false
}),
]
}
},
{
mode: 'production',
entry:'./src/relationship-mode.js',
output: {
path: path.resolve(__dirname,'dist'),
filename: 'relationship-mode.min.js',
globalObject: 'this',
library: 'relationshipMode',
libraryTarget: 'umd',
libraryExport:'default'
},
optimization: {
minimizer: [
new TerserJSPlugin({
extractComments: false
}),
]
}
}
];