首页 > 其他分享 >Rust Tauri系列: 项目创建

Rust Tauri系列: 项目创建

时间:2023-11-28 19:47:16浏览次数:30  
标签:resolve 创建 pnpm ts Tauri vue quasar import Rust

创建 Rust - Tauri

## 创建rust Tauri项目
pnpm create tauri-app
->项目名称 test-app
->选择 TypeScript / JavaScript  (pnpm, yarn, npm, bun)
->选择包管理工具(熟悉那个就用那个)
->选择 vue (熟悉那个就用那个)
->选择TypeScript 或者 js

# 运行启动
cd test-app
pnpm install
pnpm tauri dev 

# 添加quasar UI or Element Plus 都可以
pnpm add quasar @quasar/extras
pnpm add -D @quasar/vite-plugin [email protected]

# main.ts or main.js
# Import icon libraries
import '@quasar/extras/material-icons/material-icons.css'

# Import Quasar css
import 'quasar/dist/quasar.css'

const myApp = createApp(App)

# quasar 的插件配置
myApp.use(Quasar, {
    plugins: {
        Notify
    }, // import Quasar plugins and add here
    config:{
        notify: { /* look at QuasarConfOptions from the API card */ }
    }
})

myApp.mount("#app");



# vite.config.ts
.....
 plugins: [
      vue({
        template: { transformAssetUrls }
      }),
    quasar({
      sassVariables: 'src/quasar-variables.sass'
    })
  ],
.....


pinia 状态管理

pnpm i pinia --save

# store/index.ts
import { createPinia } from 'pinia'  

const store = createPinia()  

export default store

# mian.ts 挂载使用

axios

pnpm i axios

# api/index.ts

import axios from 'axios';

const service = axios.create({
    baseURL: 'http://127.0.0.1:7777/',
    timeout: 120000 // request timeout
});

// 请求拦截器
service.interceptors.request.use(
    (config) => {
        // do something
        return config;
    },
    (error) => {
        Promise.reject(error);
    }
);

// 响应拦截器
service.interceptors.response.use(
    async (response) => {
        // do something
        return response.data
    },
    (error) => {
        // do something
        return Promise.reject(error);
    }
);

export default service;


# main.ts 全局挂载
import  api from '@/api/index.ts'
const myApp = createApp(App)
myApp.config.globalProperties.$axios = api;



router

pnpm i vue-router --save

// router/index.ts
import { createRouter, createWebHistory } from 'vue-router';

const routes = [
    {
        path: '/login',
        name: 'Login',
        meta: {
            title: '登录',
            keepAlive: true,
            requireAuth: false
        },
        component: () => import('@c/Login.vue')
    },
    {
        path: '/',
        name: 'Index',
        meta: {
            title: '首页',
            keepAlive: true,
            requireAuth: true
        },
        component: () => import('@c/home/Index.vue')
    }
]

const router = createRouter({
    history: createWebHistory(),
    routes
});
export default router;

// mmain.ts  内使用


编写vite.confg.ts 配置 路径别名


# 安装
pnpm add  @types/node -D

# 添加
import { resolve } from 'path'

export default defineConfig(async () => ({
....
....
  resolve: {
    alias: {  // 这里就是需要配置resolve里的别名
      "@": resolve(__dirname, "./src"), // resolve 记得引入
      "@assets": resolve(__dirname, "./src/assets"), // resolve 记得引入
      "@view": resolve(__dirname, "./src/view"), // resolve 记得引入
      "@c": resolve(__dirname, "./src/components"), // path记得引入

      // 'vue': 'vue/dist/vue.esm-bundler.js' // 定义vue的别名,如果使用其他的插件,可能会用到别名
    },
  },

})

最后项目依赖:

前端目录:

最后vite.config.ts文件

import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
import { quasar, transformAssetUrls } from '@quasar/vite-plugin'
import { resolve } from 'path'

export default defineConfig(async () => ({
  plugins: [
      vue({
        template: { transformAssetUrls }
      }),
    quasar({
      sassVariables: 'src/quasar-variables.sass'
    })
  ],
  resolve: {
    alias: {  // 这里就是需要配置resolve里的别名
      "@": resolve(__dirname, "./src"), // path记得引入
      "@assets": resolve(__dirname, "./src/assets"), // path记得引入
      "@view": resolve(__dirname, "./src/view"), // path记得引入
      "@c": resolve(__dirname, "./src/components"), // path记得引入

      // 'vue': 'vue/dist/vue.esm-bundler.js' // 定义vue的别名,如果使用其他的插件,可能会用到别名
    },
  },


  // Vite options tailored for Tauri development and only applied in `tauri dev` or `tauri build`
  //
  // 1. prevent vite from obscuring rust errors
  clearScreen: false,
  // 2. tauri expects a fixed port, fail if that port is not available
  server: {
    port: 1420,
    strictPort: true,
  }
}));

下一节:与Rust互动

标签:resolve,创建,pnpm,ts,Tauri,vue,quasar,import,Rust
From: https://www.cnblogs.com/MnysLjj/p/17862788.html

相关文章

  • Oracle Database 19c 创建只读用户
    1.登录oracle数据库服务器,以管理员用户登录sqlplus/assysdba切换容器等操作showpdbs; altersessionsetcontainer=ORA19CPDB;showcon_name;2.创建只读用户createusercmsreadonlyidentifiedbycmsreadonlydefaulttablespaceCMSPROD_DATA......
  • Oracle临时表会随另外一个表的创建自动提交并清空
    创建一个临时表,用它导入一些数据用这个临时表生成另外一个表,用createtable...但生成的这表总是空的。原来createtable前会进行提交commit,而临时表在commit时会自动清空(默认属性,可以改)所以生成的表总是空的。这种情况下就不要用临时表了,用普通表,因为反正用完是要手工删......
  • 华为交换机创建远程ssh登录
    [SW1]interfaceVlanif1#进入vlan1的配置模式[SW1-Vlanif1]ipaddress192.168.56.1024#配置vlan1接口ip地址[SW1]aaa#进入AAA[SW1-aaa]local-usersshuserpasswordcipheradminprivilegelevel3#设置用户名密码、用户等级[SW1]rsalocal-key-paircreate#创建密......
  • rust 运行windows cmd命令
    usestd::process::Command;fncallcmd(cmdstr:&str){Command::new("cmd").arg("/S").arg("/c").arg(cmdstr).output().expect("-1&......
  • kafka中如何创建topic?
    通过如下的命令创建topickafka-topics.sh\--bootstrap-server<Kafka集群地址>\--create\--topic<Topic名称>\--partitions<分区数>\--replication-factor<副本因子>  示例bin/kafka-topics.sh\--bootstrap-server122.12......
  • android创建平板的分页页码
    在横向平板显示分页页码的时候,要实现下面的效果当默认分页超过5个之后中间显示...然后两边的页码按钮点击之后移动页码,点击1、2页码不移动,点击了第3页之后,左边移动到2、3、4页面,如下使用RecyclerView列表实现,通过对Item的type进行分类来实现页码按钮和省略号,下面是分页列表......
  • Qt创建一个自定义QPushButton
    一、概述使用Qt创建一个通用的QPushButton。应用一些样式把按钮做的好看一些。步骤:1.新建一个Button类然后继承QPushButton2.设置Button的通用样式(ps:使用.qss文件的形式应用样式)3.个性化设置不同的样式4.做一个圆角按钮、带图标按......
  • npm学习(六)之如何创建 Node.js 模块
      如何创建Node.js模块Node.js模块是一种可以发布到npm的包。当你创建一个新模块时,创建 package.json 文件是第一步。你可以使用 npminit 命令创建 package.json 文件。命令行中将会提示 package.json 字段中需要你输入的值。名称(name) 和 版本(version) 这......
  • npm学习(十)之如何使用创建、发布、使用作用域包
      前言要求npm版本2或更高作用域用于将相关包分组在一起,并为npm模块创建一个名称空间(类似于域)。这里有更详细的解释。如果一个包的名称以@开头,那么它就是一个有作用域的包。范围是@和斜杠之间的所有内容。@scope/project-name每个npm用户都有自己的范围。@userna......
  • dremio 的自服务语义层创建简单说明
    内容来自官方文档,介绍了一些关于dremio的数据语义层的玩法原则分层 通过分层可以确保安全,性能以及可用性,dremio提供了一个对于语义层的最佳实践数据集的注释增强发现以及可理解性 可以通过tag以及文档(wiki)进行数据的描述最佳实践使用1:1的预处理层 此层的数据接近原始数据源......