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

@netcentric/fe-build

Package Overview
Dependencies
Maintainers
4
Versions
20
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@netcentric/fe-build

Frontend build tools for AEM projects.

  • 1.1.1
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
300
decreased by-24.43%
Maintainers
4
Weekly downloads
 
Created
Source

@netcentric/fe-build

Frontend build tools for AEM projects.

Version Build Status CodeQL Analysis semver: semantic-release License

Intro

All in one solution for modern Frontend projects, with special focus on AEM (Adobe Experience Manager)

Installation

npm i @netcentric/fe-build

Usage

1.1. Add nc-fe-build task in package.json scripts

  "scripts": {
    "build": "nc-fe-build"
  },

1.2. Run npm task

npm run build

JavaScript

  1. Lint sourcecode with Eslint
  2. Transpile with Babel
  3. Bundle and optimize with Webpack
  4. Analyze bundles with webpack-bundle-analyzer

CSS

  1. Lint sourcecode with Stylelint
  2. Compile with sass (ex dart-sass)
  3. Transform with Autoprefixer

ClientLibraries

  1. Automatically create clientLibrary based on source file
  2. Include all bundled files

Configuration file

Default configuration can be extended via .febuild file. Config file is loaded and executed as JavaScript module. Custom configuration is used for all files located in the same directory as .febuild and in subdirectory tree.

Add .febuild whenever you need group of files to use separate build options.

Configuration that can be extended:

  • general
  • output
  • resolve
  • optimization
  • plugins
  • babel
  • sass
  • eslint
  • stylelint
  • postcss
  • templates
  • clientlibs

Eg, to override default babel config: .febuild:

module.exports = {
    babel: {
        exclude: /node_modules\/(?!swiper|dom7)/,
        use: {
            options: {
                plugins: ['@babel/plugin-proposal-optional-chaining', '@babel/plugin-transform-runtime', '@babel/plugin-proposal-object-rest-spread']
            }
        }
    }
};

Configuration details: CONFIG

NPM tasks: TASKS

Quick start

Check default settings for specific parts in: CONFIG

First config that you need to adapt are probably Source and Bundle paths. Default values are src and dist directories. I f you have different structure, override this values in .febuild file. Default source file suffix is *.souorce.*

eg. Your project

--package.json
--projectSrcDir
  |-- component
    |--file.scss

On first run of NPM build task, no files will be processed, because there is no match with default settings.

To update default settings add .febuild file in your projectSrcDir dir.

Custom source dir

Two updates are needed:

  1. Add source suffix to all files that needs to be processed - file.scss --> file.source.scss
  2. Change source dir to projectSrcDir, in .febuild
    module.exports = {
     general: {
       sourcesPath: 'path/to/projectSrcDir',
     }
    }
    
    • if sourcePath is not provided, path to .febuild will be used. For this simple example, this is enough.
    module.exports = {}
    

After running build task:

--package.json
--projectSrcDir
  |-- component
    |--file.source.scss
--dist
  |-- component
    |--file.bundle.scss

Custom dist dir

Add custom dist dir path in .febuild

module.exports = {
    general: {
        destinationPath: path.resolve(__dirname, '..', 'custom', 'dist', 'path')
    }
}

Results:

--package.json
--projectSrcDir
  |-- component
    |--file.source.scss
--custom
  |--dist
    |--path
      |-- component
        |--file.bundle.scss

For more customizations, check Configuration details: CONFIG

Keywords

FAQs

Package last updated on 14 Feb 2022

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