vue.js - 如何根据开发或生产模式更改 CSS 模块输出?
问题描述
我终于想出了如何使用localIdentName
Vue 的 Nuxt.js
在我的 Nuxt.config.js
loaders: {
cssModules: {
modules: {
localIdentName: "[local]--[hash:base64:6]",
}
}
}
这适用于我的组件 scss
<style module lang="scss">
.example{
color:black;
}
</style>
然后,在那个模块中
<div :class="$style.example"></div>
输出:
<div class="example--ofjsig"></div>
万岁!
但是我怎样才能让它只在开发中这样做,而在生产中它省略了[local]--
前缀呢?有任何想法吗?
解决方案
在nuxt.config.js
中,您可以使用基于(在生产模式下process.env.NODE_ENV
设置为)的三元有条件地插入此前缀:"production"
loaders: {
cssModules: {
modules: {
localIdentName: process.env.NODE_ENV === "production"
? "[hash:base64:6]"
: "[local]--[hash:base64:6]"
}
}
}
推荐阅读
- c# - 如何使用 c# 获取 Azure 中的虚拟机列表?
- mysql - 错误代码:1064 语法错误,意外 $end,需要 FTS_TERM 或 FTS_NUMB 或 '*' MYSQL
- python - Matploblib:创建多个图形面板,每个面板中都有大量子图
- ionic-framework - 我正在尝试将复选框的默认值设置为 false,默认情况下不应选中任何复选框,用户需要选择
- react-native - 如何仅在 IOS 上运行 Detox 测试并禁用 Android 运行
- c++ - 函数返回不同的类型
- c# - 为批量插入生成带有换行符的逗号分隔文件会产生意外的输出
- android - 如何在 Retrofit 中上传带有 JSON 对象的图像文件?
- angular - 如何使用从一个组件到另一个组件的值
- jquery - 我的 jquery hide 和 show() 在画布上不起作用