Security News
Supply Chain Attack Detected in Solana's web3.js Library
A supply chain attack has been detected in versions 1.95.6 and 1.95.7 of the popular @solana/web3.js library.
@jhuix/style-resources-loader
Advanced tools
CSS processor resources loader for webpack, which extends test option.
This @jhuix/style-resources-loader is based on style-resources-loader, which extends test
option.
npm i @jhuix/style-resources-loader -D
This loader is a CSS processor resources loader for webpack, which injects your style resources (e.g. variables, mixins
) into multiple imported css, sass, scss, less, stylus
modules.
It's mainly used to
variables, mixins, functions
across all style files, so you don't need to @import
them manually.variables
in style files provided by other libraries (e.g. ant-design) and customize your own theme.See automatic imports for more details.
Prepends variables
and mixins
to all scss
files with default resources injector.
webpack.config.js
module.exports = {
// ...
module: {
rules: [{
test: /\.scss$/,
use: ['style-loader', 'css-loader', 'sass-loader', {
loader: '@jhuix/style-resources-loader',
options: {
patterns: [
'./path/from/context/to/scss/variables/*.scss',
'./path/from/context/to/scss/mixins/*.scss',
]
}
}]
}]
},
// ...
}
Appends variables
to all less
files and overrides original less variables
.
webpack.config.js
module.exports = {
// ...
module: {
rules: [{
test: /\.less$/,
use: ['style-loader', 'css-loader', 'less-loader', {
loader: '@jhuix/style-resources-loader',
options: {
patterns: path.resolve(__dirname, 'path/to/less/variables/*.less'),
injector: 'append'
}
}]
}]
},
// ...
}
Prepends variables
and mixins
to all stylus
files with customized resources injector.
webpack.config.js
module.exports = {
// ...
module: {
rules: [{
test: /\.styl$/,
use: ['style-loader', 'css-loader', 'stylus-loader', {
loader: '@jhuix/style-resources-loader',
options: {
test:/main/
patterns: [
path.resolve(__dirname, 'path/to/stylus/variables/*.styl'),
path.resolve(__dirname, 'path/to/stylus/mixins/*.styl')
],
injector: (source, resources) => {
const combineAll = type => resources
.filter(({ file }) => file.includes(type))
.map(({ content }) => content)
.join('');
return combineAll('variables') + combineAll('mixins') + source;
}
}
}]
}]
},
// ...
}
Name | Type | Default | Description |
---|---|---|---|
test | {string | RegExp | Function} | '' | Match and Filter resource file |
patterns | {string | string[]} | / | Path to the resources you would like to inject |
injector | {Function | 'prepend' | 'append'} | 'prepend' | Controls the resources injection precisely |
globOptions | {Object} | {} | An options that can be passed to glob(...) |
resolveUrl | {boolean} | true | Enable/Disable @import url to be resolved |
See the type definition file for more details.
test
An optional function which filter the resources file with the filename.
It defaults to a empty string, which implements without filter any files.
Furthermore, an test
type should match the following type signature:
"css"
/\.vue$/
(filename: string) => boolean
patterns
A string or an array of string, which represents the path to the resources you would like to inject. If the path is relative, it would relative to webpack context.
It supports globbing. You could include many files using a file mask.
For example, './styles/*/*.less'
would include all less
files from variables
and mixins
directories and ignore reset.less
in such following structure.
./src <-- webpack context
/styles
/variables
|-- fonts.less
|-- colors.less
/mixins
|-- size.less
|-- reset.less
Only supports .css
.sass
.scss
.less
.styl
as resources file extensions.
injector
An optional function which controls the resources injection precisely. It also supports 'prepend'
and 'append'
for convenience, which means the loader will prepend or append all resources to source files, respectively.
It defaults to 'prepend'
, which implements as an injector function internally.
Furthermore, an injector function should match the following type signature:
(source: string, resources: StyleResource[]) => string | Promise<string>
It receives two parameters:
Name | Type | Default | Description |
---|---|---|---|
source | {string} | / | Content of the source file |
resources | {StyleResource[]} | / | Resource descriptors |
resources
An array of resource descriptor, each contains file
and content
properties:
Name | Type | Default | Description |
---|---|---|---|
file | {string} | / | Absolute path to the resource |
content | {string} | / | Content of the resource file |
It can be asynchronous. You could use async / await
syntax in your own injector function or just return a promise.
globOptions
Options that can be passed to glob(...)
. See node-glob options for more details.
resolveUrl
A boolean which defaults to true
. It represents whether the relative path in @import
or @require
statements should be resolved.
If you were to use @import
or @require
statements in style resource files, you should make sure that the URL is relative to that resource file, rather than the source file.
You could disable this feature by setting resolveUrl
to false
.
FAQs
CSS processor resources loader for webpack, which extends test option.
The npm package @jhuix/style-resources-loader receives a total of 0 weekly downloads. As such, @jhuix/style-resources-loader popularity was classified as not popular.
We found that @jhuix/style-resources-loader demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer 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.
Security News
A supply chain attack has been detected in versions 1.95.6 and 1.95.7 of the popular @solana/web3.js library.
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.