Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(webpack): webpack4 optimize filter * #1428

Merged
merged 2 commits into from Aug 18, 2022
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
1 change: 1 addition & 0 deletions examples/webpack4/.npmrc
@@ -0,0 +1 @@
shamefully-hoist=true
5 changes: 5 additions & 0 deletions examples/webpack4/babel.config.js
@@ -0,0 +1,5 @@
module.exports = {
presets: [
'@vue/cli-plugin-babel/preset'
]
}
17 changes: 17 additions & 0 deletions examples/webpack4/package.json
@@ -0,0 +1,17 @@
{
"private": true,
"scripts": {
"dev": "vue-cli-service serve",
"build": "vue-cli-service build"
},
"dependencies": {
"vue": "^2.6.11"
},
"devDependencies": {
"@unocss/webpack": "link:../../packages/webpack",
"@vue/cli-plugin-babel": "~4.5.15",
"@vue/cli-service": "~4.5.15",
"unocss": "^0.45.6",
"vue-template-compiler": "^2.6.11"
}
}
Empty file.
15 changes: 15 additions & 0 deletions examples/webpack4/public/index.html
@@ -0,0 +1,15 @@
<!DOCTYPE html>
<html lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<title>webpack4 demo</title>
</head>
<body>
<noscript>
<strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
</noscript>
<div id="app"></div>
</body>
</html>
5 changes: 5 additions & 0 deletions examples/webpack4/src/About.vue
@@ -0,0 +1,5 @@
<template>
<div class="about w-166px bg-green">
<h1>About</h1>
</div>
</template>
19 changes: 19 additions & 0 deletions examples/webpack4/src/App.vue
@@ -0,0 +1,19 @@
<template>
<div flex id="app" class="w-77px">
<About />
<Home />
</div>
</template>
<script>
import About from './About.vue'
import Home from './Home.vue'
export default {
components: {
About,
Home
}
}
</script>
<style>

</style>
14 changes: 14 additions & 0 deletions examples/webpack4/src/Home.vue
@@ -0,0 +1,14 @@
<template>
<div class="home">
<div class="w-200px bg-red h-100px">HOME</div>
</div>
</template>

<script>
// @ is an alias to /src

export default {
name: 'Home',

}
</script>
8 changes: 8 additions & 0 deletions examples/webpack4/src/main.js
@@ -0,0 +1,8 @@
import Vue from 'vue'
import App from './App.vue'

import 'uno.css'

new Vue({
render: h => h(App)
}).$mount('#app')
9 changes: 9 additions & 0 deletions examples/webpack4/unocss.config.js
@@ -0,0 +1,9 @@
import presetAttributify from '@unocss/preset-attributify'
import presetUno from '@unocss/preset-uno'

module.exports = {
presets: [
presetAttributify(),
presetUno(),
]
}
16 changes: 16 additions & 0 deletions examples/webpack4/vue.config.js
@@ -0,0 +1,16 @@
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,
})
},
}
1 change: 1 addition & 0 deletions packages/webpack/src/index.ts
Expand Up @@ -97,6 +97,7 @@ export default function WebpackPlugin<Theme extends {}>(
const result = await uno.generate(tokens, { minify: true })

for (const file of files) {
if (file === '*') return;
let code = compilation.assets[file].source().toString()
let replaced = false
code = code.replace(HASH_PLACEHOLDER_RE, '')
Expand Down