antSword
antSword copied to clipboard
建议增加自定义数据路径实现跨平台数据共享功能
通过更modules\config.js
source\app.entry.js
modules\settings\encoders.js
文件源码实现跨平台数据共享功能(详情:https://blog.csdn.net/Ca3tie1/article/details/103574023)
建议在加载器加载蚁剑时候可自定义蚁剑数据目录antData
位置,或者加载器是否能开源呢?
加载器是开源的 https://www.virzz.com/2018/11/06/how_to_use_antsword.html
可以测试看看 https://github.com/AntSwordProject/antSword/tree/feature/antdata
asar e electron.asar electron
vim electron/browser/init.js
rm electron.asar
asar p electron electron.asar
electron/browser/init.js
const AS_LOADER_VER = "4.0.3";
var packageJson = null;
var searchPaths = [];
try {
// 如果存在工作目录,则第一加载工作目录
var _path = path.join(process.env.HOME, '.antSword.json');
_path = fs.existsSync(_path) ? _path : path.join(process.resourcesPath, '.antSword.json');
var AS_CONFIG = JSON.parse(fs.readFileSync(_path));
var AS_WORKDIR = AS_CONFIG['workdir'];
if (fs.existsSync(AS_WORKDIR)) {
searchPaths.push(AS_WORKDIR);
process.env.AS_WORKDIR = AS_WORKDIR;
process.env.AS_LOADER_VER = AS_LOADER_VER;
}
var AS_DATADIR = AS_CONFIG['datadir'];
if ((typeof AS_DATADIR === 'string') && AS_DATADIR.length > 0) {
process.env.AS_DATADIR = AS_DATADIR;
} else {
process.env.AS_DATADIR = path.join(AS_WORKDIR, 'antData');
}
} catch (e) { }
.antSword.json
{
"workdir": "/path/to/src/",
"datadir": "/path/to/antData/"
}
有两个小bug 更改后测试没有问题
config.js this.basePath = process.env.AS_DATADIR ? process.env.AS_DATADIR : path.join(process.env.AS_WORKDIR, 'antData');
改成 this.basePath = path.join(process.env.AS_DATADIR ? process.env.AS_DATADIR : process.env.AS_WORKDIR, 'antData');
否则除编码器之外的数据都直接在datadir下了
第二个 electron/browser/init.js的else分支process.env.AS_DATADIR = path.join(AS_WORKDIR, 'antData');
改成process.env.AS_DATADIR = AS_WORKDIR
否则就会成antData/antData
@ca3tie1
然而我就是打算 datadir = /xxx/antData
主要source\modules\settings\encoders.js里每一项都加了antData了
然而都改了 https://github.com/AntSwordProject/antSword/compare/feature/antdata#diff-2ca41843f430bf70bcd5509f39b07959
嗦嘎 是我没注意看后面。。都ok 非常感谢!
先试用一段时间,合适就 merge 了
哈,这样就更方便了