takker用UserScriptのbundle設定
UserScriptをbundleするDeno scriptでbundleする
一つずつCLIでcommandを叩くのが面倒なので、各project用UserScriptを一度にbundleしてjson fileにできるscriptを新しく作った
code:sh
deno run -A --unstable https://scrapbox.io/api/code/takker/takker用UserScriptのbundle設定/build.ts
code:build.ts
import {run} from '../UserScriptをbundleするDeno_script/script.ts';
const fileNames = 'takker-memex', 'takker', 'any-project';
let codes: {key: string: string} = {};
bundleする
code:build.ts
for (const fileName of fileNames) {
const {outputFiles} = await run(
https://scrapbox.io/api/code/takker/takker用UserScriptのbundle設定/${fileName}.js,
{
'../date-fns.min.js/script.js': 'https://deno.land/x/date_fns@v2.15.0/index.js',
},
{
external: [
'/api/code/takker-memex/GYAZO_ACCESS_TOKEN/auth.js',
'/api/code/takker-memex/Google_API_for_Scrapbox/script.js',
'/api/code/takker-memex/takkerのGoogle_Calendar/script.js',
],
charset: 'utf8',
bundle: true,
minify: true,
write: false, // 標準出力やfileにbundleしたコードを出力しない
sourcemap: 'inline',
}
);
codesfileName = outputFiles?.0?.text ?? '';
}
scrapbox json dataにする
code:build.ts
let json: {pages: {title: string; lines: string[];}[];} = {pages: []};
for (const key in codes) {
const page = {
title: for-${key},
lines: [
for-${key},
[/${key}]で使うUserScript,
' UserScriptをbundleするDeno scriptでbundleした',
' 設定ファイルはtakker用UserScriptのbundle設定に置いてある',
'',
'code:script.js',
...codeskey.split('\n').map(line => ${line}),
],
};
json.pages.push(page);
}
await Deno.writeTextFile('import.json', JSON.stringify(json));
/takker-memex
code:takker-memex.js
import '../import/common.js';
import '../import/takker-memex.js';
code:sh
deno run --allow-net --allow-read --allow-write --allow-run --allow-env --unstable https://scrapbox.io/api/code/takker/UserScriptをbundleするDeno_script/build.ts https://scrapbox.io/api/code/takker/takker用UserScriptのbundle設定/takker-memex.js --bundle --minify --external=/api/code/takker-memex/GYAZO_ACCESS_TOKEN/auth.js --external=/api/code/takker-memex/Google_API_for_Scrapbox/script.js --external=/api/code/takker-memex/takkerのGoogle_Calendar/script.js --charset=utf8 --outfile=takker-memex.min.js
/takker
code:takker.js
import '../import/common.js';
import '../import/takker.js';
code:sh
deno run --allow-net --allow-read --allow-write --allow-run --allow-env --unstable https://scrapbox.io/api/code/takker/UserScriptをbundleするDeno_script/build.ts https://scrapbox.io/api/code/takker/takker用UserScriptのbundle設定/takker.js --bundle --minify --external=/api/code/takker-memex/GYAZO_ACCESS_TOKEN/auth.js --external=/api/code/takker-memex/Google_API_for_Scrapbox/script.js --external=/api/code/takker-memex/takkerのGoogle_Calendar/script.js --charset=utf8 | xsel
共通
code:any-project.js
import '../import/common.js';
code:sh
deno run --allow-net --allow-read --allow-write --allow-run --allow-env --unstable https://scrapbox.io/api/code/takker/UserScriptをbundleするDeno_script/build.ts https://scrapbox.io/api/code/takker/import/common.js --bundle --minify --external=/api/code/takker-memex/GYAZO_ACCESS_TOKEN/auth.js --external=/api/code/takker-memex/Google_API_for_Scrapbox/script.js --external=/api/code/takker-memex/takkerのGoogle_Calendar/script.js --charset=utf8 --outfile=any-project.min.js
scrapbox json dataに変換するscript
まとめて一つのjsonに入れられるようにした
code:sh
deno run --allow-read=./ --allow-write=./ https://scrapbox.io/api/code/takker/takker用UserScriptのbundle設定/make-json.ts takker takker-memex any-project
code:make-json.ts
import { parse } from "https://deno.land/std@0.97.0/flags/mod.ts";
type Page = {title: string; lines: string[];};
const {_: projects} = parse(Deno.args);
const json: {pages: Page[]} = {pages: []};
for (const project of projects) {
const script = await Deno.readTextFile(${project}.min.js);
const page = {
title: for-${project},
lines: [
for-${project},
[/${project}]で使うUserScript,
' UserScriptをbundleするDeno scriptでbundleした',
' 設定ファイルはtakker用UserScriptのbundle設定に置いてある',
'',
'code:script.js',
...script.split('\n').map(line => ${line}),
],
};
json.pages.push(page);
}
await Deno.writeTextFile('import.json', JSON.stringify(json));
#2021-09-24 10:52:59
#2021-06-05 13:15:54
#2021-05-30 13:55:36
#2021-05-26 19:42:11