变量
Swico内置了以下Node环境变量和全局变量供开发者使用。
Node环境变量
ANALYSE
用于执行npm命令swico build时,是否开启分析模式。如果值为true,则会在打包构建完成后同时打开一个展示构建产物分析的页面。
shell
cross-env ANALYZE=true swico buildSWICO_ENV
用于判断当前环境。
当执行swico dev时,该环境变量会被自动设置为dev。
当执行swico build时,该环境变量会被自动设置为prod。
可在Swico配置文件中通过获取此变量值来生成不同环境的配置。
使用示例:
ts
// config/swico.ts
import { defineConfig } from 'swico';
const env = process.env.SWICO_ENV;
export default defineConfig('base', {
template: 'react',
router: {
// 不同环境配置不同路由
routes:env==='dev'? devRoutes : prodRoutes
}
});SWICO_DEV_RESTART v1. 1. 0
用于当前本地开发服务器更新重启的判断标志,仅限框架内部使用。
SWICO_DEV_PORT v1. 1. 0
用于缓存当前本地开发服务器启动时所用的端口号,仅限框架内部使用。
SWICO_DEV_ROUTER_BASE v1. 1. 0
用于获取当前本地开发服务器当前所设置的路由RouterBase值,仅限框架内部使用。
全局变量
全局变量可在业务代码中直接使用
SWICO_ENV v2.7.0
用于判断当前是开发环境还是生产环境。可能的值有dev、prod。
SWICO_ROUTER_BASE v2.7.0
获取当前环境所设置的router > base值。默认为/。
SWICO_PUBLIC_PATH v2.7.0
获取当前环境所设置的publicPath值。默认为/。
SWICO_STATIC_PUBLIC_PATH v2.9.0
获取当前环境的静态资源路径前缀值。通常在引用public文件夹下静态资源时使用。
开发环境为/,生产环境为SWICO_PUBLIC_PATH。
基本示例:
tsx
const Index = () => {
console.log('Swico全局变量', SWICO_PUBLIC_PATH, SWICO_ROUTER_BASE, SWICO_ENV,SWICO_STATIC_PUBLIC_PATH);
return (
<div>
SWICO_ROUTER_BASE:{SWICO_ROUTER_BASE}
SWICO_PUBLIC_PATH:{SWICO_PUBLIC_PATH}
SWICO_ENV:{SWICO_ENV}
SWICO_STATIC_PUBLIC_PATH:{SWICO_STATIC_PUBLIC_PATH}
</div>
);
};vue
<script setup>
console.log('Swico全局变量', SWICO_PUBLIC_PATH, SWICO_ROUTER_BASE, SWICO_ENV,SWICO_STATIC_PUBLIC_PATH);
const publicPath = SWICO_PUBLIC_PATH;
const routerBase = SWICO_ROUTER_BASE;
const env = SWICO_ENV;
</script>
<template>
<div>
SWICO_ROUTER_BASE:{{ SWICO_ROUTER_BASE }}
SWICO_PUBLIC_PATH:{{ SWICO_PUBLIC_PATH }}
SWICO_ENV:{{ SWICO_ENV }}
SWICO_STATIC_PUBLIC_PATH:{SWICO_STATIC_PUBLIC_PATH}
</div>
</template>警告
如果项目中需要通过Swico配置项来设置新的Node环境变量或全局变量,请避免与上述变量命名冲突。