我使用CLI:vue create vue-app
创建了一个vue应用程序。
我在src/style.scss
中创建一个scss文件,并使用main.ts:import'。/style.scss
导入它。
.some {border:1px solid red;}
在app.vue中:
<div class="some">...
当我在Prod中构建应用程序时,我是如何做css丑化的? Uglify之前:。一些{display:block;}
之后:.x{display:block;}
。
我将optimize-css-assets-webpack-plugin
添加到我的vue.config.js
中。
编译后,我打开dist文件夹中的css文件,类名(some
)是相同的。
.....a[data-v-32fde4c9]{color:#42b983}.some{border:1px solid red}
vue.config.js:
const OptimizeCssAssetsPlugin = require('optimize-css-assets-webpack-plugin');
module.exports = {
configureWebpack: {
plugins: [
new OptimizeCssAssetsPlugin({
assetNameRegExp: /\.optimize\.css\.scss$/g,
cssProcessor: require('cssnano'),
cssProcessorPluginOptions: {
preset: ['default', { discardComments: { removeAll: true } }],
},
canPrint: true
}),
]
},
}
考虑使用CSS模块,因为它可以满足您的需求,具有高级的使用范围(尽管它不是模糊化或“丑化”的过程)。
幸运的是,您可以在中开箱即用地使用
*.vue
文件中的CSS模块。
唯一的问题可能是引用类的方式。 例如:
<style module>
.red {
color: red;
}
.bold {
font-weight: bold;
}
</style>
发展
<template>
<p :class="$style.red">
This should be red
</p>
</template>
生产
<template>
<p class="red_1VyoJ-uZ">
This should be red
</p>
</template>
生成的标识符完全由您决定。