1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/lin_peng118-wmap

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
vite.config.js 4.9 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
linpeng Отправлено 13.12.2023 10:50 de5d386
import { resolve } from 'path'
import { defineConfig } from 'vite'
import pkg from './package.json'
const { dependencies, devDependencies, name, version } = pkg
const __APP_INFO__ = {
pkg: { dependencies, devDependencies, name, version },
}
// 根据环境变量配置代理 https://blog.csdn.net/chendf__/article/details/115676683
// https://vitejs.dev/config/
export default ({ command, mode }) => {
const root = process.cwd()
console.log(command)
return defineConfig({
root, // 项目根目录(index.html 文件所在的位置)
base: './', // 开发或生产环境服务的 公共基础路径
mode, // serve 时默认 'development',build 时默认 'production'
//定义全局变量替换方式。每项在开发时会被定义为全局变量,而在构建时则是静态替换。
define: {
__APP_INFO__: JSON.stringify(__APP_INFO__),
},
publicDir: 'public', //作为静态资源服务的文件夹
resolve: {
//路径别名
alias: {},
// dedupe:string[], //将列出的依赖关系解析到相同的副本
// conditions:string[], // 在解析包的 情景导出 时允许的附加条件。
mainFields: ['module', 'jsnext:main', 'jsnext'], //package.json 中,在解析包的入口点时尝试的字段列表
extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json'], // 导入时想要省略的扩展名列表
},
json: {
namedExports: true, // 是否支持从 .json 文件中进行按名导入
stringify: false, // 若设置为 true,导入的 JSON 会被转换为 export default JSON.parse("...") 会比转译成对象字面量性能更好,尤其是当 JSON 文件较大的时候。
},
// assetsInclude, // 指定其他文件类型作为静态资源处理(这样导入它们就会返回解析后的 URL)
logLevel: 'info', // 调整控制台输出的级别
clearScreen: true, // 设为 false 可以避免 Vite 清屏而错过在终端中打印某些关键信息
server: {
//服务器主机名
host: '0.0.0.0',
//端口号
port: 3000,
//设为 true 时若端口已被占用则会直接退出,而不是尝试下一个可用端口
strictPort: false,
//服务器启动时自动在浏览器中打开应用程序,当此值为字符串时,会被用作 URL 的路径名
open: true
// proxy: {
// '/map-api': { // 自行设置的请求前缀,按照这个来匹配请求,有这个字段的请求,就会进到代理来
// target: 'http://139.9.35.40/wmap/wmap.es.js',
// changeOrigin: true, //是否跨域
// rewrite: (path) => path.replace('/map-api', '') // 重写匹配的字段,如果不需要放在请求路径上,可以重写为""
// }
// }
},
build: {
// target: 'es2015', //构建的浏览器兼容目标
outDir: 'WMap', //输出路径
assetsDir: resolve(__dirname, 'src/assets'), //指定生成静态资源的存放路径
assetsInlineLimit: 4096, // 4kb 小于此阈值的导入或引用资源将内联为 base64 编码,以避免额外的 http 请求
cssCodeSplit: true, //启用/禁用 CSS 代码拆分,禁用,整个项目中的所有 CSS 将被提取到一个 CSS 文件中
sourcemap: false, //构建后是否生成 source map 文件
lib: {
entry: resolve(__dirname, 'map/index.js'),
name: 'WMap', // 全局注册使用变量
fileName: (format) => `wmap.${format}.js`,
},
//自定义底层的 Rollup 打包配置
rollupOptions: {
// input: {
// main: resolve(__dirname, 'index.html')
// },
output: {
// 在 UMD 构建模式下为这些外部化的依赖提供一个全局变量
globals: {
WMap: 'WMap'
},
},
},
manifest: false, //后端集成,生成 manifest.json 文件
minify: 'terser', // 禁用最小化混淆,或是用来指定使用哪种混淆器 ,terser 相对较慢,但大多数情况下构建后的文件体积更小
// terserOptions:TerserOptions, //传递给 Terser 的更多 minify 选项。
terserOptions: {
compress: {
drop_console: true,
drop_debugger: true,
},
},
write: true, //常用于 编程式地调用 build() 在写入磁盘之前,需要对构建后的文件进行进一步处理。
emptyOutDir: true, // 若 outDir 在 root 目录下,则为 true
brotliSize: true, //启用/禁用 brotli 压缩大小报告。压缩大型输出文件可能会很慢,因此禁用该功能可能会提高大型项目的构建性能。
chunkSizeWarningLimit: 500, //chunk 大小警告的限制(以 kbs 为单位)。
},
// 依赖优化选项 - 依赖预构建
optimizeDeps: {
},
// ssr:{
// external:string[], // 列出的是要为 SSR 强制外部化的依赖。
// noExternal:string[],// 列出的是防止被 SSR 外部化依赖项。
// }
})
}

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/lin_peng118-wmap.git
git@api.gitlife.ru:oschina-mirror/lin_peng118-wmap.git
oschina-mirror
lin_peng118-wmap
lin_peng118-wmap
master