From 7845ec0e7ae09f9e054b16a0db67b42aaf84322a Mon Sep 17 00:00:00 2001 From: Lucas Fernandes Nogueira Date: Fri, 27 Dec 2019 20:34:24 -0300 Subject: [PATCH] refactor(tauri.js) keep folder structure on /dist (#235) --- cli/tauri.js/bin/tauri-build.js | 2 +- cli/tauri.js/bin/tauri-dev.js | 2 +- cli/tauri.js/bin/tauri-icon.js | 2 +- cli/tauri.js/bin/tauri-init.js | 2 +- cli/tauri.js/package.json | 1 + cli/tauri.js/src/api/build.ts | 4 ---- cli/tauri.js/src/api/dev.ts | 4 ---- cli/tauri.js/src/entry.ts | 7 ++----- cli/tauri.js/src/runner.ts | 13 ++++++------- cli/tauri.js/src/template/index.ts | 2 +- cli/tauri.js/webpack.config.js | 14 +++++++++----- cli/tauri.js/yarn.lock | 16 ++++++++++++++++ 12 files changed, 39 insertions(+), 30 deletions(-) diff --git a/cli/tauri.js/bin/tauri-build.js b/cli/tauri.js/bin/tauri-build.js index cc4494cfe..f7b6354bf 100644 --- a/cli/tauri.js/bin/tauri-build.js +++ b/cli/tauri.js/bin/tauri-build.js @@ -20,6 +20,6 @@ if (argv.help) { process.exit(0) } -const build = require('../dist/build') +const build = require('../dist/api/build') build({ ctx: { debug: argv.debug } }) diff --git a/cli/tauri.js/bin/tauri-dev.js b/cli/tauri.js/bin/tauri-dev.js index f430fa6cc..2cde19504 100644 --- a/cli/tauri.js/bin/tauri-dev.js +++ b/cli/tauri.js/bin/tauri-dev.js @@ -19,6 +19,6 @@ if (argv.help) { process.exit(0) } -const dev = require('../dist/dev') +const dev = require('../dist/api/dev') dev() diff --git a/cli/tauri.js/bin/tauri-icon.js b/cli/tauri.js/bin/tauri-icon.js index 4bf1e3c7b..c0de7a9e6 100644 --- a/cli/tauri.js/bin/tauri-icon.js +++ b/cli/tauri.js/bin/tauri-icon.js @@ -1,5 +1,5 @@ const parseArgs = require('minimist') -const { tauricon } = require('../dist/tauricon') +const { tauricon } = require('../dist/api/tauricon') /** * @type {object} diff --git a/cli/tauri.js/bin/tauri-init.js b/cli/tauri.js/bin/tauri-init.js index f514e5047..34ff7d99e 100644 --- a/cli/tauri.js/bin/tauri-init.js +++ b/cli/tauri.js/bin/tauri-init.js @@ -39,7 +39,7 @@ if (argv.help) { process.exit(0) } -const init = require('../dist/init') +const init = require('../dist/api/init') init({ directory: argv.d || process.cwd(), diff --git a/cli/tauri.js/package.json b/cli/tauri.js/package.json index 72edaa7a1..df3b3503a 100644 --- a/cli/tauri.js/package.json +++ b/cli/tauri.js/package.json @@ -95,6 +95,7 @@ "lint-staged": "9.5.0", "lockfile-lint": "3.0.3", "promise": "8.0.3", + "raw-loader": "^4.0.0", "ts-loader": "6.2.1", "typescript": "3.7.3", "webpack": "4.41.4", diff --git a/cli/tauri.js/src/api/build.ts b/cli/tauri.js/src/api/build.ts index 40e8423eb..c045c5bc6 100644 --- a/cli/tauri.js/src/api/build.ts +++ b/cli/tauri.js/src/api/build.ts @@ -1,7 +1,5 @@ import { TauriConfig } from 'types' import merge from 'webpack-merge' -import * as entry from '../entry' -import { tauriDir } from '../helpers/app-paths' const getTauriConfig = require('../helpers/tauri-config') import Runner from '../runner' @@ -18,7 +16,5 @@ module.exports = async (config: TauriConfig): Promise => { ) as TauriConfig ) - entry.generate(tauriDir, tauriConfig) - return tauri.build(tauriConfig) } diff --git a/cli/tauri.js/src/api/dev.ts b/cli/tauri.js/src/api/dev.ts index 968cdfa7e..307bf2089 100644 --- a/cli/tauri.js/src/api/dev.ts +++ b/cli/tauri.js/src/api/dev.ts @@ -1,7 +1,5 @@ import { TauriConfig } from 'types' import merge from 'webpack-merge' -import * as entry from '../entry' -import { tauriDir } from '../helpers/app-paths' const getTauriConfig = require('../helpers/tauri-config') import Runner from '../runner' @@ -19,7 +17,5 @@ module.exports = async (config: TauriConfig): Promise => { ) as TauriConfig ) - entry.generate(tauriDir, tauriConfig) - return tauri.run(tauriConfig) } diff --git a/cli/tauri.js/src/entry.ts b/cli/tauri.js/src/entry.ts index 6c5cffe24..17353eb23 100644 --- a/cli/tauri.js/src/entry.ts +++ b/cli/tauri.js/src/entry.ts @@ -1,14 +1,11 @@ -import { ensureDirSync, readFileSync, writeFileSync } from 'fs-extra' +import { ensureDirSync, writeFileSync } from 'fs-extra' import compileTemplate from 'lodash.template' import path from 'path' import { TauriConfig } from './types/config' export const generate = (outDir: string, cfg: TauriConfig): void => { // this MUST be from the templates repo - const apiTemplate = readFileSync( - path.resolve(__dirname, '../templates/tauri.js'), - 'utf-8' - ) + const apiTemplate = require('../templates/tauri.js').default const apiContent = compileTemplate(apiTemplate)(cfg) ensureDirSync(outDir) diff --git a/cli/tauri.js/src/runner.ts b/cli/tauri.js/src/runner.ts index b11160ba8..24b7c584d 100644 --- a/cli/tauri.js/src/runner.ts +++ b/cli/tauri.js/src/runner.ts @@ -47,6 +47,8 @@ class Runner { this.__whitelistApi(cfg, toml) }) + entry.generate(tauriDir, cfg) + const runningDevServer = devPath.startsWith('http') let inlinedAssets: string[] = [] @@ -56,8 +58,6 @@ class Runner { process.env.TAURI_INLINED_ASSSTS = inlinedAssets.join('|') - entry.generate(tauriDir, cfg) - this.devPath = devPath const features = runningDevServer ? ['dev-server'] : [] @@ -121,12 +121,11 @@ class Runner { this.__whitelistApi(cfg, toml) }) - const inlinedAssets = await this.__parseHtml(cfg, cfg.build.distDir) - - process.env.TAURI_INLINED_ASSSTS = inlinedAssets.join('|') - entry.generate(tauriDir, cfg) + const inlinedAssets = await this.__parseHtml(cfg, cfg.build.distDir) + process.env.TAURI_INLINED_ASSSTS = inlinedAssets.join('|') + const features = [ cfg.tauri.embeddedServer.active ? 'embedded-server' : 'no-server' ] @@ -163,7 +162,7 @@ class Runner { const distIndexPath = path.join(indexDir, 'index.html') if (!existsSync(distIndexPath)) { warn( - `Error: cannot find index.html in "${indexDir}". Did you forget to build your web code or update the build.distDir in tauri.conf.js?` + `Error: cannot find index.html in "${indexDir}". Did you forget to build your web code or update the build.distDir in tauri.conf.json?` ) reject(new Error('Could not find index.html in dist dir.')) } diff --git a/cli/tauri.js/src/template/index.ts b/cli/tauri.js/src/template/index.ts index 1371198fb..8b16f212e 100644 --- a/cli/tauri.js/src/template/index.ts +++ b/cli/tauri.js/src/template/index.ts @@ -66,7 +66,7 @@ Run \`tauri init --force template\` to overwrite.`) try { removeSync(dir) copyTemplates({ - source: resolve(__dirname, '../templates/src-tauri'), + source: resolve(__dirname, '../../templates/src-tauri'), scope: { tauriDep }, diff --git a/cli/tauri.js/webpack.config.js b/cli/tauri.js/webpack.config.js index c648ff56f..0182c5706 100644 --- a/cli/tauri.js/webpack.config.js +++ b/cli/tauri.js/webpack.config.js @@ -3,11 +3,11 @@ const nodeExternals = require('webpack-node-externals') module.exports = { entry: { - build: './src/api/build.ts', - dev: './src/api/dev.ts', - init: './src/api/init.ts', - tauricon: './src/api/tauricon.ts', - 'tauri-config': './src/helpers/tauri-config.ts' + 'api/build': './src/api/build.ts', + 'api/dev': './src/api/dev.ts', + 'api/init': './src/api/init.ts', + 'api/tauricon': './src/api/tauricon.ts', + 'helpers/tauri-config': './src/helpers/tauri-config.ts' }, mode: process.env.NODE_ENV || 'development', devtool: 'source-map', @@ -17,6 +17,10 @@ module.exports = { test: /\.tsx?$/, use: 'ts-loader', exclude: /node_modules/ + }, + { + test: /tauri\.js$/i, + loader: 'raw-loader' } ] }, diff --git a/cli/tauri.js/yarn.lock b/cli/tauri.js/yarn.lock index c3d65da1e..e73c70ceb 100644 --- a/cli/tauri.js/yarn.lock +++ b/cli/tauri.js/yarn.lock @@ -6678,6 +6678,14 @@ randomfill@^1.0.3: randombytes "^2.0.5" safe-buffer "^5.1.0" +raw-loader@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/raw-loader/-/raw-loader-4.0.0.tgz#d639c40fb9d72b5c7f8abc1fb2ddb25b29d3d540" + integrity sha512-iINUOYvl1cGEmfoaLjnZXt4bKfT2LJnZZib5N/LLyAphC+Dd11vNP9CNVb38j+SAJpFI1uo8j9frmih53ASy7Q== + dependencies: + loader-utils "^1.2.3" + schema-utils "^2.5.0" + rc@^1.0.1, rc@^1.2.7: version "1.2.8" resolved "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" @@ -7139,6 +7147,14 @@ schema-utils@^1.0.0: ajv-errors "^1.0.0" ajv-keywords "^3.1.0" +schema-utils@^2.5.0: + version "2.6.1" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.6.1.tgz#eb78f0b945c7bcfa2082b3565e8db3548011dc4f" + integrity sha512-0WXHDs1VDJyo+Zqs9TKLKyD/h7yDpHUhEFsM2CzkICFdoX1av+GBq/J2xRTFfsQO5kBfhZzANf2VcIm84jqDbg== + dependencies: + ajv "^6.10.2" + ajv-keywords "^3.4.1" + seek-bzip@^1.0.5: version "1.0.5" resolved "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.5.tgz#cfe917cb3d274bcffac792758af53173eb1fabdc"