Skip to content
This repository was archived by the owner on Nov 9, 2023. It is now read-only.

Commit 9d30ef7

Browse files
committed
feat: add basic build and dev support
1 parent c75e180 commit 9d30ef7

File tree

6 files changed

+3492
-1
lines changed

6 files changed

+3492
-1
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
node_modules

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
# vue-cli-plugin-tauri
2-
A Vue plug-in for rigging Tauri
2+
3+
A Vue CLI plugin for rigging Tauri

generator/index.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
const execa = require('execa')
2+
const { error } = require('@vue/cli-shared-utils')
3+
4+
module.exports = async api => {
5+
await execa('cargo', ['tauri-cli', '--version']).catch(() => {
6+
// TODO: provide better error
7+
error('Tauri CLI crate not installed')
8+
process.exit(1)
9+
})
10+
require('tauri/bin/tauri-init')
11+
api.extendPackage({
12+
scripts: {
13+
'tauri:serve': 'vue-cli-service tauri:serve',
14+
'tauri:build': 'vue-cli-service tauri:build'
15+
}
16+
})
17+
}

index.js

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
module.exports = api => {
2+
api.registerCommand(
3+
'tauri:serve',
4+
{
5+
// TODO: fill in meta
6+
description: 'todo',
7+
usage: 'todo'
8+
},
9+
async () => {
10+
const { tauriDir } = require('tauri/helpers/app-paths')
11+
const Runner = require('tauri/runner')
12+
const tauri = new Runner()
13+
14+
const server = await api.service.run('serve')
15+
16+
const tauriConfig = require('tauri/helpers/tauri-config')({
17+
ctx: {
18+
debug: true
19+
},
20+
build: {
21+
devPath: server.url
22+
}
23+
})
24+
25+
require('tauri/generator').generate(tauriConfig.tauri)
26+
require('tauri/entry').generate(tauriDir, tauriConfig)
27+
28+
tauri.run(tauriConfig)
29+
}
30+
)
31+
32+
api.registerCommand(
33+
'tauri:build',
34+
{
35+
// TODO: fill in meta
36+
description: 'todo',
37+
usage: 'todo'
38+
},
39+
async args => {
40+
const { tauriDir } = require('tauri/helpers/app-paths')
41+
const Runner = require('tauri/runner')
42+
const tauri = new Runner()
43+
const tauriConfig = require('tauri/helpers/tauri-config')({
44+
ctx: {
45+
debug: args.debug,
46+
modeDir: tauriDir
47+
},
48+
build: {
49+
distDir: 'dist_tauri/bundled'
50+
}
51+
})
52+
require('tauri/generator').generate(tauriConfig.tauri)
53+
require('tauri/entry').generate(tauriDir, tauriConfig)
54+
55+
try {
56+
await api.service.run('build', {
57+
dest: 'dist_tauri/bundled'
58+
})
59+
} catch (e) {
60+
error(
61+
'Vue CLI build failed. Please resolve any issues with your build and try again.'
62+
)
63+
process.exit(1)
64+
}
65+
66+
tauri.build(tauriConfig)
67+
}
68+
)
69+
}
70+
71+
module.exports.defaultModes = {
72+
'tauri:build': 'production',
73+
'tauri:serve': 'development'
74+
}

package.json

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
"name": "vue-cli-plugin-tauri",
3+
"version": "0.0.1",
4+
"description": "A Vue CLI plugin for rigging Tauri",
5+
"main": "index.js",
6+
"author": "Noah Klayman <noahklayman@gmail.com>",
7+
"license": "MIT",
8+
"private": false,
9+
"dependencies": {
10+
"@vue/cli-shared-utils": "^4.1.1",
11+
"execa": "^3.4.0",
12+
"tauri": "^0.1.9"
13+
}
14+
}

0 commit comments

Comments
 (0)