Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
lit-css-loader
Advanced tools
Webpack loader to import css files as JavaScript tagged-template literal objects.
The "Lit" stands for "Literal"
You can use it to import CSS for various libraries like lit-element
,
@microsoft/fast-element
, or others.
No. This is an optional package who's sole purpose is to make it easier to write
CSS-in-CSS while working on lit-element projects. You can just as easily write
your CSS in some 'styles.css.js
' modules a la:
import { css } from 'lit-element';
export default css`:host { display: block; }`;
And this may actually be preferred.
Hopefully this package will become quickly obsolete when the CSS Modules Proposal (or something like it) is accepted and implemented.
In the mean time, enjoy importing your CSS into your component files.
Name | Accepts | Default |
---|---|---|
include | Array of glob of files to include. | ['**/*.css'] |
exclude | Array of glob of files to exclude. | undefined |
cssnano | Boolean or Object of cssnano options. | false |
specifier | Package to import css from | lit |
tag | Name of the template-tag function | css |
transform | Optional function (sync or async) which transforms css sources (e.g. postcss) | x => x |
npm i -D lit-css-loader
module: {
rules: [
{
test: /\.css$/,
loader: 'lit-css-loader',
options: {
specifier: 'lit-element' // defaults to `lit`
}
}
]
}
import { LitElement, html } from 'lit';
import { customElement } from 'lit/decorators.js';
import style from './styled-el.css';
@customElement('styled-el')
export class extends LitElement {
static styles = [style]
render() {
return html`<p>such style. very win</p>`;
}
}
To load scss files:
test
clause of the module rule as needed (e.g)transform
function to the loader optionsconst Sass = require('sass');
module.exports = {
module: {
rules: [
{
test: /\.scss$/,
loader: 'lit-css-loader',
options: {
transform: (data, { filePath }) =>
Sass.renderSync({ data, file: filePath })
.css.toString(),
}
}
]
}
}
Similarly, to transform sources using PostCSS, specify a transform
function:
const postcss = require('postcss');
const postcssNesting = require('postcss-nesting');
const processor = postcss(postcssNesting());
module.exports = {
module: {
rules: [
{
test: /\.scss$/,
loader: 'lit-css-loader',
options: {
transform: (css, { filePath }) =>
processor.process(css, { from: filePath })
.css
}
}
]
}
}
Looking for rollup? rollup-plugin-lit-css Looking for esbuild? esbuild-plugin-lit-css Looking for typescript? typescript-transform-lit-css
FAQs
Import CSS files as tagged template literals
We found that lit-css-loader demonstrated a healthy version release cadence and project activity because the last version was released less than 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
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.