问题描述
如标签描述的不准确,请见谅
我的需求是开发多套皮肤,打包的时候只加载其中某一种的皮肤(不需要动态换肤),因为css文件过大,后期配套的css文件过多,写在一起的话,一次全打包上去项目非常的大,又不可能复制多套代码,维护起来太痛苦了(js是一致的)
问题出现的环境背景及自己尝试过哪些方法
我目前想到的是全局定义一个变量,通过这个变量来加载css,然后维护对应的css文件即可,不知道可否实现?如各位有更好的做法,请告知,非常感谢!
相关代码
staticEnv.js
export const CSS = 'a';
.vue组件
<template>
</template>
<script>
import {CSS} from 'src/config/staticEnv'
export default {
name: "css",
data() {
return {
}
}
}
</script>
<style scoped lang="stylus" type="text/stylus">
@import "变量CSS.styl"
</style>
单页面开发,有很多的组件,我想把css提出来放在对应的组件下,然后动态的加载,如变量是a 那么我就只需要加载 a.styl
你期待的结果是什么?实际看到的错误信息又是什么?
如本人描述的不够准确,欢迎各位大佬在回答中问,我将在第一时间回复,再次感谢
我有个办法,你可以把你的样式文件动态的写入HTML中,通过link标签来搞,比如说你要加载a.css,就写个标签
你可以写个方法,传入你要加载的css的名字,然后
document.head.appendChild(document.createElement('link').href="样式表名字(地址)")
首先你可以拿到webpack编译的时候的环境变量,怎么定义的去看这个博客


如果你是用的vue-cli脚手架生成的项目,应该会有这么两个文件去设置vue环境变量的,你加上一个A
然后,你找到build文件夹下webpack.base.conf.js
添加一个别名,你引入css的时候,就引入这个别名文件夹下的对应的文件,就行了
在构建npm run dev的时候,我试了,好像拿不到
process.env.A
,不过你可以手动在webpack.base.conf.js里面手动的去赋值一下process.env.A = xxx