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

oo-redux-utils

Package Overview
Dependencies
Maintainers
1
Versions
78
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

oo-redux-utils

Utility functions for Object-oriented Redux

  • 1.0.0
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
17
decreased by-48.48%
Maintainers
1
Weekly downloads
 
Created
Source

React Single File Components (SFC) Webpack Loader

Webpack loader for React Single File Components (SFC) inspired by Vue SFCs

version build coverage MIT License

React Single File Component Sample

Prerequisites

"webpack": "^4.0.0",

Installation

npm install --save-dev react-sfc-webpack-loader
   

React Single File Component

React Single File Component (SFC) is implemented in a .html file where JavaScript is put inside a single section and optional CSS is put inside a single (optional) ... section

Example

See example in example directory

Style types

Define style type as follows:

CSS

 <style>
    ...
    ..
</style>

or

<style type="text/css">
    ...
    ..
</style>

SCSS

<style type="text/scss">
    ...
    ..
</style>

SASS

<style type="text/sass">
    ...
    ..
</style>

LESS

<style type="text/less">
  ...
  ..
</style>

Stylus

<style type="text/stylus">
  ...
  ..
</style>

CSS Modules

CSS Modules support is enabled with scoped attribute:

<style scoped type="text/scss">
    ...
    ..
</style>

Your CSS rule for CSS modules in Webpack config must test file extension .module.<style-type>, e.g. .module.css or .module.scss, for example:

{
    test: /\.module.scss$/,
    exclude: /node_modules/,
    use: [
      'style-loader',
      {
        loader: 'css-loader',
        options: {
          modules: {
            mode: 'local',
            localIdentName: '[local]--[hash:base64:5]'
          }
        }
      },
      'sass-loader'
    ]
}

Your CSS is available in .html files through object named "styles", for example:

<div className={styles.demo}>

If you use ESLint and get error of undefined 'styles', add following line to .html file:

  /*global styles*/

Webpack configuration

Create React App

If you have created your React app with Create React App, you need to eject it by running:

npm eject

or

yarn eject

Add following rule to rules array in config/webpack.config.js file:

module: {
    rules: [
      {
        test: /\.html$/,
        exclude: /node_modules/,
        use: ['babel-loader', 'react-sfc-webpack-loader']
      }
      

Manual configuration

Have your normal Webpack configuration

Have your normal rules for style loading depending on style type (CSS/SCSS/SASS/LESS/Stylus)

Only change needed is to add this following rule to Webpack configuration:

module: {
    rules: [
      {
        test: /\.html$/,
        exclude: /node_modules/,
        use: ['babel-loader', 'react-sfc-webpack-loader']
      }
        

Supported tools

  • Prettier

  • StyleLint Use for example following npm script in your package.json:

      "stylelint": "stylelint src/**/*.html",
    
  • ESLint (below steps must be done in addition to normal ESLint installation and configuration)

    • Install eslint-plugin-html

         npm install --save-dev eslint-plugin-html
         
      
    • Add to your ESLint configuration

         {
             "plugins": [
                 "html"
             ],
             rules: [
                 "react/jsx-filename-extension": [1, { "extensions": [".js", ".jsx", ".html"] }]
             ]
         }
         
      
  • Flow (Needs ESLint and below steps must be done in addition to normal Flow installation and configuration)

    • Install eslint-plugin-flowtype-errors

        npm install --save-dev eslint-plugin-flowtype-errors
        
      
    • Configure ESLint

        {
            "plugins": [            
                "flowtype-errors"
            ],
            rules: [
               "flowtype-errors/show-errors": 2
            ]
        }                             
      
    • Enable flow usage in .html file

        // @flow
        <script>
        // @flow
        .
        .
        .
        </script>
      

Tested IDEs/Editors

  • WebStorm

Not supported

  • TypeScript

License

MIT License

Keywords

FAQs

Package last updated on 29 Sep 2019

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