欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue3 vite如何讀取文件內(nèi)容

 更新時間:2024年05月23日 10:06:46   作者:мо仙堡杠把子ご灬  
這篇文章主要介紹了vue3 vite如何讀取文件內(nèi)容問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

vue3 vite讀取文件內(nèi)容

const modulesFiles = import.meta.globEager('./routerConfig/*.js');
let modules = [];
for (const path in modulesFiles) {
  modules = [].concat(modules, modulesFiles[path].default);
}

webpack

let routerArr = [];

// 自動加載該目錄下的所有文件
const files = require.context('./', true, /\.(js)$/);
// 根據(jù)文件名組織模塊對象
files.keys().map(src => {
  const match = src.match(/\/(.+)\./);
  if (match && match.length >= 1) {
    const moduleValue = files(src);
    if (moduleValue.default) {
      routerArr = [].concat(routerArr, moduleValue.default);
    }
  }
});
export default routerArr;

vue3使用vite配置環(huán)境變量

環(huán)境變量和模式 | Vite 官方中文文檔

1、環(huán)境變量

1.1、環(huán)境模式

.env                # 所有情況下都會加載
.env.local          # 所有情況下都會加載,但會被 git 忽略
.env.[mode]         # 只在指定模式下加載
.env.[mode].local   # 只在指定模式下加載,但會被 git 忽略

1.2、默認(rèn)環(huán)境變量

  • import.meta.env.MODE: {string} 應(yīng)用運(yùn)行的模式
  • import.meta.env.BASE_URL: {string} 部署應(yīng)用時的基本 URL
  • import.meta.env.PROD: {boolean} 應(yīng)用是否運(yùn)行在生產(chǎn)環(huán)境
  • import.meta.env.DEV: {boolean} 應(yīng)用是否運(yùn)行在開發(fā)環(huán)境 (永遠(yuǎn)與 import.meta.env.PROD相反)

1.3、應(yīng)用環(huán)境變量

  • .env文件:所有環(huán)境下都會加載
  • .env.development文件:開發(fā)環(huán)境
  • .env.production文件:生產(chǎn)環(huán)境

可以通過 import.meta.env.MODE === 'development' 進(jìn)行判斷

VITE_APP_NAME = dist-icon

注意:變量名稱必須VITE_開頭

1.4、使用環(huán)境變量

// 判斷
const isProd = import.meta.env.MODE === 'production'
// 讀取
const appName = import.meta.env.VITE_APP_NAME

在項目中,根據(jù)項目業(yè)務(wù)和情況來配置環(huán)境變量。.env.development一般為默認(rèn),非測試或特定情況可不用配置

2、自定義環(huán)境變量

如果使用自定義配置環(huán)境變量,import.meta.env.MODE中的運(yùn)行環(huán)境將變成自定義的環(huán)境,比如:import.meta.env.MODE:hbjt。

不再是用development或production來區(qū)分開發(fā)環(huán)境和生產(chǎn)環(huán)境。

要想在自定義環(huán)境變量中控制是開發(fā)環(huán)境還是生產(chǎn)環(huán)境,可以定義.env.projectName(生產(chǎn)環(huán)境)、.env.projectName-dev(開發(fā)環(huán)境)。

自定義變量 NODE_ENV = development 或者 ODE_ENV = production 來控制是否是生產(chǎn)環(huán)境

2.1、命名環(huán)境變量

.env.projectName(項目名稱)

一般應(yīng)用場景:控制同一套框架下根據(jù)項目打包不同的業(yè)務(wù)、特定環(huán)境下的變量或環(huán)境地址

注意:.env文件中存儲默認(rèn)的環(huán)境變量

2.2、使用環(huán)境變量

  • dev:啟動本地環(huán)境項目。
  • serve:projectName:啟動指定環(huán)境的本地項目
"scripts": {
  "dev": "vite",
  "serve:projectName": "vite --mode projectName",
  "build": "vue-tsc && vite build",
  "build:projectName": "vue-tsc && vite build --mode projectName",
  "preview": "vite preview",
  "lint:fix": "eslint --ext .ts,.tsx,.vue --fix ."
}
  • 啟動指定環(huán)境項目后,才可以訪問到環(huán)境變量,否則默認(rèn)取.env文件下環(huán)境變量
  • --mode projectName(項目名稱-可自行定義)

3、vite中使用環(huán)境變量

import { defineConfig, loadEnv } from 'vite'
import vue from '@vitejs/plugin-vue'
import { resolve } from 'path'
import VueSetupExtend from 'vite-plugin-vue-setup-extend'
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { VantResolver } from 'unplugin-vue-components/resolvers'
import viteLegacyPlugin from '@vitejs/plugin-legacy'
 
export default defineConfig(({ command, mode }) => {
  const env = loadEnv(mode, process.cwd(), '')
  const appName = env.VITE_APP_NAME
  console.log('env', env)
  return {
    plugins: [
      vue(),
      VueSetupExtend(),
      AutoImport({
        resolvers: [VantResolver()]
      }),
      Components({
        resolvers: [VantResolver()]
      }),
      viteLegacyPlugin({
        targets: ['chrome 52', 'ie >= 11'], // 需要兼容的目標(biāo)列表,可以設(shè)置多個
        additionalLegacyPolyfills: ['regenerator-runtime/runtime'] // 面向IE11時需要此插件
      })
    ],
    resolve: {
      // 設(shè)置快捷指向
      alias: {
        '@': resolve(__dirname, './src')
      }
    },
    build: {
      // 指定輸出路徑
      outDir: appName
    },
    base: BASE_URL,
    server: {
      port: 8086,
      host: '0.0.0.0',
      open: true, // 啟動服務(wù)是否自動打開瀏覽器
      cors: true, // 跨域
      proxy: {
        '/webspiderweb': {
          target: '',
          changeOrigin: true,
          secure: false
        }
      }
    },
    define: {
      'process.env': {
        VITE_APP_NAME: env.VITE_APP_NAME,
        VITE_APP_BASE_URL: env.VITE_APP_BASE_URL
      }
    }
  }
})
  • define:將全局變量注入到代碼中
  • process.env:用于訪問運(yùn)行時的環(huán)境變量

使用:import.meta.env.VITE_APP_NAME 或 process.env.VITE_APP_NAME

總結(jié)

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Vue input輸入框回車以后自動刷新頁面(直播程序)

    Vue input輸入框回車以后自動刷新頁面(直播程序)

    這篇文章主要介紹了直播程序,Vue input輸入框回車以后自動刷新頁面,適用場景是在輸入框輸入字符并按下回車鍵搜索時,刷新頁面,需要的朋友參考下實(shí)現(xiàn)代碼
    2023-01-01
  • Vue3?計算屬性computed的實(shí)現(xiàn)原理

    Vue3?計算屬性computed的實(shí)現(xiàn)原理

    這篇文章主要介紹了Vue3?計算屬性computed的實(shí)現(xiàn)原理,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的朋友可以參考一下
    2022-08-08
  • vue組件Prop傳遞數(shù)據(jù)的實(shí)現(xiàn)示例

    vue組件Prop傳遞數(shù)據(jù)的實(shí)現(xiàn)示例

    本篇文章主要介紹了vue組件Prop傳遞數(shù)據(jù)的實(shí)現(xiàn)示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • vue 子組件修改data或調(diào)用操作

    vue 子組件修改data或調(diào)用操作

    這篇文章主要介紹了vue 子組件修改data或調(diào)用操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • 微信小程序開發(fā)實(shí)現(xiàn)消息框彈出

    微信小程序開發(fā)實(shí)現(xiàn)消息框彈出

    在小程序的wxml文件中創(chuàng)建消息框,消息框一般包含要提示的消息內(nèi)容以及確認(rèn)和取消按鈕,在小程序的wxss文件中定義消息框的樣式,在小程序的js文件中,我們需要通過Animation對象實(shí)現(xiàn)消息框的彈出動畫
    2023-12-12
  • vue實(shí)現(xiàn)搜索并高亮文字的兩種方式總結(jié)

    vue實(shí)現(xiàn)搜索并高亮文字的兩種方式總結(jié)

    在做文字處理的項目時經(jīng)常會遇到搜索文字并高亮的需求,常見的實(shí)現(xiàn)方式有插入標(biāo)簽和貼標(biāo)簽兩種,這兩種方式適用于不同的場景,各有優(yōu)劣,下面我們就來看看他們的具體實(shí)現(xiàn)吧
    2023-11-11
  • 深入理解vue $refs的基本用法

    深入理解vue $refs的基本用法

    本篇文章主要介紹了深入理解vue $refs的基本用法 ,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • vue3?tailwindcss的使用教程

    vue3?tailwindcss的使用教程

    Tailwind是由Adam Wathan領(lǐng)導(dǎo)的TailwindLabs開發(fā)的 CSS 框架,這篇文章主要介紹了vue3?tailwindcss的使用,需要的朋友可以參考下
    2023-08-08
  • VUE3刷新頁面報錯問題解決:Uncaught?SyntaxError:Unexpected?token?'<'

    VUE3刷新頁面報錯問題解決:Uncaught?SyntaxError:Unexpected?token?&apo

    這篇文章主要介紹了VUE3刷新頁面報錯:Uncaught?SyntaxError:?Unexpected?token?‘<‘,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-03-03
  • useEffect理解React、Vue設(shè)計理念的不同

    useEffect理解React、Vue設(shè)計理念的不同

    這篇文章主要為大家介紹了useEffect理解React、Vue設(shè)計理念的不同詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09

最新評論