@@ -29,6 +29,7 @@ const {
2929 * @property {boolean } log
3030 * @property {boolean } d
3131 * @property {boolean } directory
32+ * @property {boolean } dev
3233 * @property {string } r
3334 * @property {string } recipe
3435 */
@@ -41,15 +42,15 @@ const createTauriApp = async (cliArgs) => {
4142 l : 'log' ,
4243 m : 'manager' ,
4344 d : 'directory' ,
44- b : 'binary ' ,
45+ dev : 'dev ' ,
4546 t : 'tauri-path' ,
4647 A : 'app-name' ,
4748 W : 'window-title' ,
4849 D : 'dist-dir' ,
4950 P : 'dev-path' ,
5051 r : 'recipe'
5152 } ,
52- boolean : [ 'h' , 'l' , 'ci' ]
53+ boolean : [ 'h' , 'l' , 'ci' , 'dev' ]
5354 } )
5455
5556 if ( argv . help ) {
@@ -62,13 +63,9 @@ const createTauriApp = async (cliArgs) => {
6263 return false // do this for node consumers and tests
6364 }
6465
65- if ( argv . ci ) {
66- return runInit ( argv )
67- } else {
68- return getOptionsInteractive ( argv ) . then ( ( responses ) =>
69- runInit ( argv , responses )
70- )
71- }
66+ return getOptionsInteractive ( argv , ! argv . ci ) . then ( ( responses ) =>
67+ runInit ( argv , responses )
68+ )
7269}
7370
7471function printUsage ( ) {
@@ -95,38 +92,46 @@ function printUsage() {
9592 ` )
9693}
9794
98- const getOptionsInteractive = ( argv ) => {
99- let defaultAppName = argv . A || 'tauri-app'
95+ const getOptionsInteractive = ( argv , ask ) => {
96+ const defaults = {
97+ appName : argv . A || 'tauri-app' ,
98+ tauri : { window : { title : 'Tauri App' } } ,
99+ recipeName : argv . r || 'vanillajs'
100+ }
100101
101102 return inquirer
102103 . prompt ( [
103104 {
104105 type : 'input' ,
105106 name : 'appName' ,
106107 message : 'What is your app name?' ,
107- default : defaultAppName ,
108- when : ! argv . A
108+ default : defaults . appName ,
109+ when : ask && ! argv . A
109110 } ,
110111 {
111112 type : 'input' ,
112113 name : 'tauri.window.title' ,
113114 message : 'What should the window title be?' ,
114- default : 'Tauri App' ,
115- when : ( ) => ! argv . W
115+ default : defaults . tauri . window . title ,
116+ when : ask && ! argv . W
116117 } ,
117118 {
118119 type : 'list' ,
119120 name : 'recipeName' ,
120121 message : 'Would you like to add a UI recipe?' ,
121122 choices : recipeDescriptiveNames ,
122- default : 'No recipe' ,
123- when : ( ) => ! argv . r
123+ default : defaults . recipeName ,
124+ when : ask && ! argv . r
124125 }
125126 ] )
127+ . then ( ( answers ) => ( {
128+ ...defaults ,
129+ ...answers
130+ } ) )
126131 . catch ( ( error ) => {
127132 if ( error . isTtyError ) {
128133 // Prompt couldn't be rendered in the current environment
129- console . log (
134+ console . warn (
130135 'It appears your terminal does not support interactive prompts. Using default values.'
131136 )
132137 runInit ( )
@@ -150,10 +155,10 @@ async function runInit(argv, config = {}) {
150155
151156 let recipe
152157
153- if ( recipeName !== undefined ) {
154- recipe = recipeByDescriptiveName ( recipeName )
155- } else if ( argv . r ) {
158+ if ( argv . r ) {
156159 recipe = recipeByShortName ( argv . r )
160+ } else if ( recipeName !== undefined ) {
161+ recipe = recipeByDescriptiveName ( recipeName )
157162 }
158163
159164 let buildConfig = {
@@ -201,10 +206,21 @@ async function runInit(argv, config = {}) {
201206 // Vue CLI plugin automatically runs these
202207 if ( recipe . shortName !== 'vuecli' ) {
203208 console . log ( '===== installing any additional needed deps =====' )
209+ if ( argv . dev ) {
210+ await shell ( 'yarn' , [ 'link' , '@tauri-apps/cli' ] , {
211+ cwd : appDirectory
212+ } )
213+ await shell ( 'yarn' , [ 'link' , '@tauri-apps/api' ] , {
214+ cwd : appDirectory
215+ } )
216+ }
217+
204218 await install ( {
205219 appDir : appDirectory ,
206220 dependencies : recipe . extraNpmDependencies ,
207- devDependencies : [ '@tauri-apps/cli' , ...recipe . extraNpmDevDependencies ] ,
221+ devDependencies : argv . dev
222+ ? [ ...recipe . extraNpmDevDependencies ]
223+ : [ '@tauri-apps/cli' ] . concat ( recipe . extraNpmDevDependencies ) ,
208224 packageManager
209225 } )
210226
@@ -216,7 +232,7 @@ async function runInit(argv, config = {}) {
216232 packageManager === 'npm' && ! argv . b
217233 ? [ 'run' , 'tauri' , '--' , 'init' ]
218234 : [ 'tauri' , 'init' ]
219- await shell ( binary , [ ...runTauriArgs , ...initArgs ] , {
235+ await shell ( binary , [ ...runTauriArgs , ...initArgs , '--ci' ] , {
220236 cwd : appDirectory
221237 } )
222238 }
0 commit comments