Webpack Plugin
UnoCSS-এর জন্য webpack plugin: @unocss/webpack। বর্তমানে, এই plugin শুধুমাত্র global mode support করে।
INFO
এই plugin-এ কোনো default presets নেই।
Prerequisite
@unocss/webpack-এর জন্য CSS files handle করতে style-loader এবং css-loader প্রয়োজন।
Installation
pnpm add -D @unocss/webpackyarn add -D @unocss/webpacknpm install -D @unocss/webpackbun add -D @unocss/webpackUnoCSS version v0.59.0 থেকে, UnoCSS ESM-only-তে সরানো হয়েছে, আপনাকে dynamic import-এর মাধ্যমে আপনার configuration load করতে হবে:
// webpack.config.js
module.exports = function () {
return import('@unocss/webpack').then(({ default: UnoCSS }) => ({
plugins: [
UnoCSS()
],
optimization: {
realContentHash: true
}
}))
}// webpack.config.js
module.exports = function () {
return import('@unocss/webpack').then(({ default: UnoCSS }) => ({
plugins: [
UnoCSS()
],
css: {
extract: {
filename: '[name].[hash:9].css'
},
},
}))
}আপনি যদি UnoCSS-এর পুরানো version ব্যবহার করছেন, আপনি নিম্নলিখিত code ব্যবহার করতে পারেন:
// webpack.config.js
const UnoCSS = require('@unocss/webpack').default
module.exports = {
plugins: [
UnoCSS()
],
optimization: {
realContentHash: true
}
}// webpack.config.js
const UnoCSS = require('@unocss/webpack').default
module.exports = {
plugins: [
UnoCSS()
],
css: {
extract: {
filename: '[name].[hash:9].css'
}
}
}একটি uno.config.ts file তৈরি করুন:
import { defineConfig } from 'unocss'
export default defineConfig({
// ...UnoCSS options
})WARNING
আপনি যদি webpack@4.x ব্যবহার করছেন, optimization.realContentHash configuration support করা হয় না, এবং আপনি CSS filename customize করতে css.extract.filename ব্যবহার করা উচিত (আমরা contenthash-এর বদলে hashcode-এর প্রথম 9টি অক্ষর ব্যবহার করি example হিসাবে)। bundle-এর সাথে এই সুপরিচিত সমস্যা এবং webpack#9520 সম্পর্কে সতর্ক থাকুন।
Usage
আপনার main entry-তে uno.css যোগ করুন:
import 'uno.css'Frameworks
Vue + Vue CLI
আপনি যদি webpack 4/5 সহ Vue CLI ব্যবহার করছেন UnoCSS v0.59.0 সহ, আপনাকে dynamic import-এর মাধ্যমে আপনার configuration load করতে সর্বশেষ Vue CLI Service v5.0.8 ব্যবহার করতে হবে:
// vue.config.js
const process = require('node:process')
module.exports = function () {
return import('@unocss/webpack').then(({ default: UnoCSS }) => ({
configureWebpack: {
devtool: 'inline-source-map',
plugins: [
UnoCSS()
],
optimization: {
realContentHash: true
}
},
chainWebpack(config) {
config.module.rule('vue').uses.delete('cache-loader')
config.module.rule('tsx').uses.delete('cache-loader')
config.merge({
cache: false
})
},
css: {
extract: process.env.NODE_ENV === 'development'
? {
filename: 'css/[name].css',
chunkFilename: 'css/[name].css'
}
: true
}
}))
}// vue.config.js
const process = require('node:process')
module.exports = function () {
return import('@unocss/webpack').then(({ default: UnoCSS }) => ({
configureWebpack: {
plugins: [
UnoCSS({})
]
},
chainWebpack(config) {
config.module.rule('vue').uses.delete('cache-loader')
config.module.rule('tsx').uses.delete('cache-loader')
config.merge({
cache: false
})
},
css: {
extract: process.env.NODE_ENV === 'development'
? {
filename: '[name].css',
chunkFilename: '[name].[hash:9].css'
}
: true
}
}))
}UnoCSS-এর পুরানো version ব্যবহার করলে, আপনি নিম্নলিখিত code ব্যবহার করতে পারেন:
// vue.config.js
const process = require('node:process')
const UnoCSS = require('@unocss/webpack').default
module.exports = {
configureWebpack: {
devtool: 'inline-source-map',
plugins: [
UnoCSS()
],
optimization: {
realContentHash: true
}
},
chainWebpack(config) {
config.module.rule('vue').uses.delete('cache-loader')
config.module.rule('tsx').uses.delete('cache-loader')
config.merge({
cache: false
})
},
css: {
extract: process.env.NODE_ENV === 'development'
? {
filename: 'css/[name].css',
chunkFilename: 'css/[name].css'
}
: true
},
}// vue.config.js
const process = require('node:process')
const UnoCSS = require('@unocss/webpack').default
module.exports = {
configureWebpack: {
plugins: [
UnoCSS({}),
]
},
chainWebpack(config) {
config.module.rule('vue').uses.delete('cache-loader')
config.module.rule('tsx').uses.delete('cache-loader')
config.merge({
cache: false,
})
},
css: {
extract: process.env.NODE_ENV === 'development'
? {
filename: '[name].css',
chunkFilename: '[name].[hash:9].css',
}
: true,
},
}