Vue项目打包后动态获取自定义变量

1 前言

1.1 业务场景

一般使用 Vue 项目连接后端请求,使用的 axios

import axios from 'axios'

export const CMSAPI = axios.create({
  baseURL: "http://localhost:8080",
  timeout: 30000,
});
复制代码

axios 中的 baseURL 一般是访问地址

Vue 项目打包后,如果我们需要修改这个 baseURL 就需要修改代码重新 build

这样就比较麻烦了

有没有什么办法可以在Vue项目打包后再自定义变量呢?

2 实现原理

2.1 文件

目前使用新版 @vue/cli 创建的项目目录如上

我们发现这个图标文件 favicon.ico 在打包文件中会单独存在

类似,我们在这个文件夹中新建一个 index.js 文件

2.2 代码

index.js 文件中,我们直接定义一个变量

//  index.js
const apiURL = 'http://localhost:8080'
复制代码
//  index.html
<script type="text/javascript" src="<%= BASE_URL %>index.js"></script>
//  然后使用window对象
window.apiURL = apiURL
复制代码
// axios中引用
import axios from 'axios'

export const CMSAPI = axios.create({
  baseURL: window.apiURL,
  timeout: 30000,
});
复制代码

2.3 打包

npm run build 后,会发现根目录中有我们定义的 index.js

这样我们就可以直接修改 index.js 中变量的值就可以啦

3 后记

感谢支持。若不足之处,欢迎大家指出,共勉。

如果觉得不错,记得 点赞,谢谢大家 ?

欢迎关注 我的: 【Github】 【掘金】 【简书】


本文章采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。

出处为:github.com/xrkffgg/Too…

Vue3 项目中,打包CSS通常发生在构建阶段。以下是一般的步骤: 1. **使用Vue CLI** (命令行界面): - 对于Vue CLI 3.x及以上版本,你可以通过 `vue add style-resources-loader` 添加一个插件来合并和打包CSS。然后在项目配置文件 `vue.config.js` 中配置: ```javascript module.exports = { css: { loaderOptions: { sass: { data: ` @import "@/styles/main.scss"; `, }, stylus: { import: [ path.resolve(__dirname, '@/styles/main.styl'), ], }, // ... 更多预处理器选项 }, }, }; ``` 这样,`main.scss` 或 `main.styl` 这样的文件会被打包进应用的CSS文件内。 2. **使用Vite**: Vite 会自动处理CSS模块,无需额外配置。只需将CSS导入到JavaScript文件中,它们就会被合并并打包。 3. **Webpack**: 如果你在使用自定义Webpack配置,可以在`module.rules`部分配置CSS加载器,例如使用MiniCssExtractPlugin来提取CSS: ```javascript module.exports = { module: { rules: [ { test: /\.css$/, use: [ {loader: MiniCssExtractPlugin.loader}, 'css-loader', 'postcss-loader', // 可能需要添加PostCSS处理 ] } ] }, plugins: [ new MiniCssExtractPlugin({ filename: '[name].css' }) ] }; ``` 4. **使用预处理器**: 如果你的CSS使用了Sass、Less等预处理器,记得安装相应的插件,并配置对应的数据源(如变量和导入的外部文件)。 打包完成后,生成的CSS文件会在指定的位置,如`dist`目录下的`static/css`(取决于你的配置)。你可以在HTML模板中直接引用这些文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值