Research
Security News
Malicious npm Package Targets Solana Developers and Hijacks Funds
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
windicss-webpack-plugin
Advanced tools
:leaves: Windi CSS for webpack️
Next generation utility-first CSS framework.
tailwind.config.js
@apply
/ @screen
directives in any file: Less, SCSS, SASS, PostCSS, Stylusbg-gray-200 hover:(bg-gray-100 text-red-300)
yarn add windicss-webpack-plugin -D
# npm i windicss-webpack-plugin -D
If you have access to modify the webpack.config.js directly, then you can do the following.
// webpack.config.js
import WebpackWindiCSSPlugin from 'windicss-webpack-plugin'
export default {
// ...
plugins: [
new WebpackWindiCSSPlugin()
],
};
// main.js
import 'windi.css'
See ./example
That's all. Build your app just like what you would do with Tailwind CSS, but much faster! ⚡️
If you are already using Tailwind CSS for your app, please consult the documentation on migrating.
That's all, fire up your app and enjoy the speed!
You can use TypeScript for your config file if you're using esbuild.
Simply rename your config it to tailwind.config.ts
.
// tailwind.config.ts
import { defineConfig } from 'windicss-webpack-plugin'
export default defineConfig({
darkMode: 'class',
theme: {
extend: {
colors: {
teal: {
100: '#096',
},
},
},
},
})
By default, we scan your source code statically and find all the usages of the utilities then generated corresponding CSS on-demand. However, there is some limitation that utilities that decided in the runtime can not be matched efficiently, for example
<!-- will not be detected -->
<div className={`p-${size}`}>
For that, you will need to specify the possible combinations in the safelist
options of windi.config.ts
.
// windi.config.ts
import { defineConfig } from 'vite-plugin-windicss'
export default defineConfig({
safelist: 'p-1 p-2 p-3 p-4'
})
Or you can do it this way
// windi.config.ts
import { defineConfig } from 'vite-plugin-windicss'
function range(size, startAt = 1) {
return Array.from(Array(size).keys()).map(i => i + startAt);
}
export default defineConfig({
safelist: [
range(30).map(i => `p-${i}`), // p-1 to p-3
range(10).map(i => `mt-${i}`) // mt-1 to mt-10
]
})
On server start, windicss-webpack-plugin
will scan your source code and extract the utilities usages. By default,
only files under src/
with extensions vue, html, mdx, pug, jsx, tsx
will be included. If you want to enable scanning for other file type of locations, you can configure it via:
// windi.config.js
import { defineConfig } from 'windcss/helpers'
export default defineConfig({
extract: {
include: ['src/**/*.{vue,html,jsx,tsx}'],
exclude: ['node_modules', '.git']
}
})
Or in plugin options:
// webpack.config.js
import WebpackWindiCSSPlugin from 'windicss-webpack-plugin'
export default {
// ...
plugins: [
new WebpackWindiCSSPlugin({
scan: {
dirs: ['.'], // all files in the cwd
fileExtensions: ['vue', 'js', 'ts'], // also enabled scanning for js/ts
},
})
],
};
See options.ts for more configuration reference.
MIT License © 2021 Harlan Wilton
FAQs
windicss-webpack-plugin
The npm package windicss-webpack-plugin receives a total of 4,285 weekly downloads. As such, windicss-webpack-plugin popularity was classified as popular.
We found that windicss-webpack-plugin demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 4 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
Security News
Research
Socket researchers have discovered malicious npm packages targeting crypto developers, stealing credentials and wallet data using spyware delivered through typosquats of popular cryptographic libraries.
Security News
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.