diff --git a/.gitignore b/.gitignore index 867d2a0..acb381a 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,8 @@ node_modules/ dist/ .web2app/ release/ +installer/ +__appImage-x64/ # Binaries & executables *.exe diff --git a/electron/main.js b/electron/main.js index aed9986..515c3ca 100644 --- a/electron/main.js +++ b/electron/main.js @@ -111,8 +111,8 @@ ipcMain.handle('dir:readTree', async (_event, dirPath) => { return readDirectoryTree(dirPath) }) -ipcMain.handle('project:create', async (_event, name, dir) => { - return createProject(name, dir) +ipcMain.handle('project:create', async (_event, projectPath) => { + return createProject(projectPath) }) ipcMain.handle('project:load', async (_event, projectPath) => { diff --git a/electron/preload.js b/electron/preload.js index 8d623f6..d34e8ac 100644 --- a/electron/preload.js +++ b/electron/preload.js @@ -13,7 +13,7 @@ contextBridge.exposeInMainWorld('api', { readTree: (dirPath) => ipcRenderer.invoke('dir:readTree', dirPath) }, project: { - create: (name, dir) => ipcRenderer.invoke('project:create', name, dir), + create: (projectPath) => ipcRenderer.invoke('project:create', projectPath), load: (projectPath) => ipcRenderer.invoke('project:load', projectPath), save: (projectPath, data) => ipcRenderer.invoke('project:save', projectPath, data), importFiles: (projectPath, files) => ipcRenderer.invoke('project:importFiles', projectPath, files), diff --git a/electron/project.js b/electron/project.js index 36de428..fdf2749 100644 --- a/electron/project.js +++ b/electron/project.js @@ -21,16 +21,21 @@ function getDistDir(projectPath) { return dir } -function createProject(name, dir) { - const projectPath = path.join(dir, name) - if (fs.existsSync(projectPath)) { - throw new Error(`目录 ${projectPath} 已存在`) +function createProject(projectPath) { + if (!fs.existsSync(projectPath)) { + fs.mkdirSync(projectPath, { recursive: true }) } + + const configPath = getConfigPath(projectPath) + if (fs.existsSync(configPath)) { + throw new Error(`该目录已是 Web2App 项目`) + } + fs.mkdirSync(path.join(projectPath, '.web2app', 'src'), { recursive: true }) fs.mkdirSync(path.join(projectPath, '.web2app', 'dist'), { recursive: true }) const config = { - name, + name: path.basename(projectPath), version: '1.0.0', description: '', author: '', @@ -47,7 +52,7 @@ function createProject(name, dir) { updatedAt: new Date().toISOString() } - fs.writeFileSync(getConfigPath(projectPath), JSON.stringify(config, null, 2)) + fs.writeFileSync(configPath, JSON.stringify(config, null, 2)) return { projectPath, config } } diff --git a/package.json b/package.json index 4e5ca97..7970cd4 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "appId": "com.web2app.app", "productName": "Web2App", "directories": { - "output": "release" + "output": "installer" }, "files": [ "electron/**/*", diff --git a/src/stores/project.js b/src/stores/project.js index 7e4b76d..5bb6d1b 100644 --- a/src/stores/project.js +++ b/src/stores/project.js @@ -28,8 +28,8 @@ export const useProjectStore = defineStore('project', { }, actions: { - async createProject(name, dir) { - const result = await window.api.project.create(name, dir) + async createProject(projectPath) { + const result = await window.api.project.create(projectPath) this.projectPath = result.projectPath this.config = result.config this.files = [] diff --git a/src/views/Home.vue b/src/views/Home.vue index e763d99..0f4b0e6 100644 --- a/src/views/Home.vue +++ b/src/views/Home.vue @@ -12,13 +12,13 @@
暂无资源
-点击上方按钮导入网站文件
+ +尚未设置资源路径
+点击上方「路径」按钮,选择你的网站目录导入