This commit is contained in:
Luk 2024-12-07 09:26:04 +08:00
parent bc0b982a09
commit 816cc89dad
2 changed files with 15 additions and 25 deletions

View File

@ -6,6 +6,7 @@ const path = require('path')
const openSharePath = fs.existsSync(path.resolve('./env_loc.gitomit.sfomit.json')) ? require(path.resolve('./env_loc.gitomit.sfomit.json')).openShare : '' const openSharePath = fs.existsSync(path.resolve('./env_loc.gitomit.sfomit.json')) ? require(path.resolve('./env_loc.gitomit.sfomit.json')).openShare : ''
console.log('openShare:', openSharePath) console.log('openShare:', openSharePath)
if (!openSharePath) { if (!openSharePath) {
console.log('openShare not found, exiting now.')
return return
} }
@ -22,7 +23,7 @@ libs.forEach((libName) => {
const sourceFiles = fs.readdirSync(libPath).filter((fileName) => fileName.endsWith('.js') || fileName.endsWith('.json')) const sourceFiles = fs.readdirSync(libPath).filter((fileName) => fileName.endsWith('.js') || fileName.endsWith('.json'))
sourceFiles.forEach((file) => { sourceFiles.forEach((file) => {
const sourceFile = path.join(libPath, file) const sourceFile = path.join(libPath, file)
const tempFile = path.join(nodeModulesPath, libName, file + '.temp') const tempFile = path.join(nodeModulesPath, libName, file + `.${Date.now()}`)
const destFile = path.join(nodeModulesPath, libName, file) const destFile = path.join(nodeModulesPath, libName, file)
// fs.symlinkSync(sourceFile, tempFile, 'file') // through symbolic links, 例如 tic-crypto 安装后,报错 tweetnacl module 找不到,因为跟着 symbolic links 去原始文件所在的位置找了。 // fs.symlinkSync(sourceFile, tempFile, 'file') // through symbolic links, 例如 tic-crypto 安装后,报错 tweetnacl module 找不到,因为跟着 symbolic links 去原始文件所在的位置找了。
try { try {
@ -32,6 +33,9 @@ libs.forEach((libName) => {
// Fallback to copy if hard link fails // Fallback to copy if hard link fails
fs.copyFileSync(sourceFile, tempFile) fs.copyFileSync(sourceFile, tempFile)
} }
try {
fs.unlinkSync(destFile)
} catch {}
fs.renameSync(tempFile, destFile) fs.renameSync(tempFile, destFile)
}) })
} }

View File

@ -1,4 +1,4 @@
// usage: node env_loc.js hbxCli iosTransporter simsimPath openShare // usage: node env_loc.js hbxCli iosTransporter // defaultEnv里不存在的作为参数
const fs = require('fs') const fs = require('fs')
const path = require('path') const path = require('path')
@ -9,22 +9,16 @@ const params = process.argv.slice(2)
// 默认值。如要覆盖,请在 env_loc.gitomit.sfomit.json 中修改。 // 默认值。如要覆盖,请在 env_loc.gitomit.sfomit.json 中修改。
const defaultEnv = { const defaultEnv = {
hbxCli: hbxCli:
os.type() === 'Darwin' && os.type() === 'Darwin' && fs.existsSync('/Applications/HBuilderX.app/Contents/MacOS/cli')
fs.existsSync('/Applications/HBuilderX.app/Contents/MacOS/cli')
? '/Applications/HBuilderX.app/Contents/MacOS/cli' ? '/Applications/HBuilderX.app/Contents/MacOS/cli'
: os.type() === 'Windows_NT' && fs.existsSync('C:/HBuilderX/cli.exe') : os.type() === 'Windows_NT' && fs.existsSync('C:/HBuilderX/cli.exe')
? 'C:/HBuilderX/cli.exe' ? 'C:/HBuilderX/cli.exe'
: '', : '',
iosTransporter: iosTransporter:
os.type() === 'Darwin' && os.type() === 'Darwin' && fs.existsSync('/Applications/Transporter.app/Contents/itms/bin/iTMSTransporter')
fs.existsSync(
'/Applications/Transporter.app/Contents/itms/bin/iTMSTransporter'
)
? '/Applications/Transporter.app/Contents/itms/bin/iTMSTransporter' ? '/Applications/Transporter.app/Contents/itms/bin/iTMSTransporter'
: '', : '',
simsimPath: module.paths.some(modulesPath => simsimPath: module.paths.some((modulesPath) => fs.existsSync(path.join(modulesPath, 'sesame-basic')))
fs.existsSync(path.join(modulesPath, 'sesame-basic'))
)
? 'sesame-basic' ? 'sesame-basic'
: fs.existsSync('../../../simsim/sesame-basic') : fs.existsSync('../../../simsim/sesame-basic')
? path.resolve('../../../simsim/sesame-basic') ? path.resolve('../../../simsim/sesame-basic')
@ -35,29 +29,21 @@ const defaultEnv = {
? path.resolve('../../npm') ? path.resolve('../../npm')
: fs.existsSync(`${os.homedir()}/openShare`) : fs.existsSync(`${os.homedir()}/openShare`)
? path.resolve(`${os.homedir()}/openShare`) ? path.resolve(`${os.homedir()}/openShare`)
: '' : '',
} }
const localEnv = Object.assign( const localEnv = Object.assign(
{}, {},
params.reduce((acc, cur) => { params.reduce((acc, cur) => {
if (defaultEnv[cur]) { // 把参数名数组转化为对象
acc[cur] = defaultEnv[cur] acc[cur] = ''
} else {
acc[cur] = ''
}
return acc return acc
}, {}), }, {}),
fs.existsSync('./env_loc.gitomit.sfomit.json') defaultEnv, // 继承所有默认值
? require(path.resolve('./env_loc.gitomit.sfomit.json')) fs.existsSync('./env_loc.gitomit.sfomit.json') ? require(path.resolve('./env_loc.gitomit.sfomit.json')) : {}
: {}
) )
fs.writeFileSync( fs.writeFileSync(path.resolve('./env_loc.gitomit.sfomit.json'), JSON.stringify(localEnv, null, 2), 'utf8')
path.resolve('./env_loc.gitomit.sfomit.json'),
JSON.stringify(localEnv, null, 2),
'utf8'
)
console.log(localEnv) console.log(localEnv)