New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

parcel-plugin-css-to-string

Package Overview
Dependencies
Maintainers
1
Versions
19
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

parcel-plugin-css-to-string

Importing CSS files as a string to JavaScript

  • 2.5.5
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
8
decreased by-70.37%
Maintainers
1
Weekly downloads
 
Created
Source

parcel-plugin-css-to-string

support parcel v1 test status npm version

Importing CSS files as a string to JavaScript.

Transform plugin for Parcel v1

Support Parcel v2: parcel-transformer-css-to-string

styles.css

.text {
  color: #162D3D;
}

index.js

import styles from "./styles.css";

console.log(styles); // ".text{color:#162D3D}"

Install

npm i --save-dev parcel-plugin-css-to-string
# or
yarn add -D parcel-plugin-css-to-string

How to use

I'm recommending to use the custom extension to your styles which will be imported as a string. It will help to escape conflicts with .css files for global styles or css-modules. The default asset type css.

You can add the list of your custom extensions to .parcelrc config. Syntax highlight custom extension

For example: styles.cssx.

.parcelrc

{
  "parcel-plugin-css-to-string": {
    "assetType": ["cssx"]
  }
}

Example

Web component styles via the Shadow DOM

my-app
├── src
│   ├── styles.cssx
│   └── index.js
└── .parcelrc

src/styles.cssx

.title {
  text-align: center;
}

src/index.js

import styles from "./styles.cssx";

const root = document.createElement("div");

root.innerHTML = `
<style>${styles}</style>
<div>
  <h1 class="title">Hello!</h1>
</div>
`;

class MyWebComponent extends HTMLElement {
  connectedCallback() {
    this.attachShadow({ mode: "open" }).appendChild(root);
  }
}

window.customElements.define("my-web-component", MyWebComponent);

Plugin options

your .parcelrc

{
  "parcel-plugin-css-to-string": {
    "assetType": ["css"],
    "minify": true,
    "enableCSS": false
  }
}

or package.json

{
  "name": "my_package",
  "description": "",
  "version": "1.0.0",
  "main": "index.js",
  "devDependencies": {
    "parcel-bundler": "^1.x",
    "parcel-plugin-css-to-string": "^2.x"
  },
+  "parcel-plugin-css-to-string": {
+    "assetType": ["css"],
+    "minify": true,
+    "enableCSS": false
+  }
}
NameTypeDefaultDescription
assetType{Array<string>}["css"]List of asset types imported to javascript as a string.
minify{Boolean}trueon/off minification
enableCSS{Boolean}falseon/off the generation of CSS files

Minify config

You can configure minify CSS in production build, where custom configuration can be set by creating cssnano.config.js file

cssnano.config.js

module.exports = {
  preset: [
    "default",
    {
      calc: false,
      discardComments: {
        removeAll: true
      }
    }
  ]
}

PostCSS

You can configure CSS transforming with PostCSS creating a configuration file using one of these names: .postcssrc (JSON), .postcssrc.js, or postcss.config.js.

.postcssrc config omit .parcelrc option minify. If you use PostCSS config then you need added cssnano plugin to minify production build.

.postcssrc

{
  "plugins": {
    "postcss-import": {},
    "autoprefixer": {},
    "cssnano": {}
  }
}

Developer tools

You can configure how the IDE will parse the files with custom extension.

VS Code

Add to the root folder of your project a new folder .vscode with file settings.json

my-app
├── .vscode
│   └── settings.json
├── src
│   ├── styles.cssx
│   └── index.js
└── .parcelrc

.vscode/settings.json

{
  "files.associations": {
    "*.cssx": "css",
    ".parcelrc": "json",
    ".postcssrc": "json"
  }
}

License

MIT

Keywords

FAQs

Package last updated on 22 Aug 2021

Did you know?

Socket

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.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc