npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@bytehide/webpack4-shield

v1.0.0

Published

Webpack 4 plugin for ByteHide Shield obfuscation.

Readme

Bytehide Shield - Webpack 4

Bytehide Shield is a suite of tools designed to protect and obfuscate your JavaScript project code during the build process. This version is specifically designed for Webpack 4 compatibility.


Introduction

Bytehide Shield improves the security of your applications through advanced code obfuscation, preventing reverse engineering and making tampering attempts more difficult. This plugin is designed to integrate seamlessly with Webpack 4 projects.


Webpack 4 Plugin

Installation

Install the Webpack 4 plugin using npm or yarn:

npm install @bytehide/webpack4-shield --save-dev
# or
yarn add --dev @bytehide/webpack4-shield

Usage

Add the plugin to your Webpack 4 configuration:

const ByteHideShieldPlugin = require('@bytehide/webpack4-shield');

module.exports = {
  // ... previous configuration ...
  plugins: [
    new ByteHideShieldPlugin({
      projectToken: 'your_project_token_here',  // Replace with your Bytehide project token  
      replace: false,                           // Whether to replace original files
      obfuscatedExtension: '.obf',               // Extension for obfuscated files
      exclude: [],                              // Array of files to exclude from obfuscation
      config: {
        controlFlowFlattening: true,
        debugProtection: false,
        devtoolsBlocking: false,
      },
      include: ['.js', '.mjs', '.cjs', '.jsx'], // File extensions to process
    }),
  ],
};

Key Differences from Webpack 5 Version

This version has been specifically adapted for Webpack 4 compatibility:

API Changes

  • Plugin Registration: Uses compiler.plugin('emit', ...) instead of compiler.hooks.emit.tapAsync()
  • Asset Creation: Uses function-based asset objects compatible with Webpack 4
  • Promise Handling: Adapted async handling for Webpack 4's callback-based system

Webpack 4 Specific Features

  • Compatible with Webpack 4.0.0 and above
  • Uses legacy plugin API for maximum compatibility
  • Optimized for Webpack 4's asset processing system

Requirements

  • Node.js: >= 8.0.0
  • Webpack: ^4.0.0
  • Webpack CLI: ^3.3.12
  • Webpack Dev Server: ^3.11.3

Features

  • Advanced Obfuscation: Implements obfuscation techniques to protect your code.
  • Custom Control: Configure options like controlFlowFlattening, debugProtection, and devtoolsBlocking.
  • Compatibility: Processes .js, .mjs, .cjs, and .jsx files.
  • Webpack 4 Optimized: Fully compatible with Webpack 4's plugin system.

Example Output

If you have an index.js file with this content:

console.log("Hello, world!");

The processed result will include a unique marker and the obfuscated code:

// _0xBHSHLD_<uniqueId>_marker
console.log(_0x123456("Hello, world!"));

Configuration Options

| Option | Type | Default | Description | |--------|------|---------|-------------| | projectToken | string | '' | Your Bytehide project token | | replace | boolean | false | Whether to replace original files | | obfuscatedExtension | string | '.obf' | Extension for obfuscated files | | exclude | array | [] | Files to exclude from obfuscation | | include | array | ['.js', '.mjs', '.cjs', '.jsx'] | File extensions to process | | config.controlFlowFlattening | boolean | true | Enable control flow flattening | | config.debugProtection | boolean | false | Enable debug protection | | config.devtoolsBlocking | boolean | false | Enable devtools blocking |

Common Errors

  • Network Error: Ensure you have an active internet connection as the plugin uses a remote service for code obfuscation.
  • Invalid Token: Verify that the project token is valid.
  • Webpack Version: Ensure you're using Webpack 4.x. For Webpack 5+, use @bytehide/webpack-shield instead.

Migration from Webpack 5

If you're downgrading from Webpack 5 or need Webpack 4 compatibility:

  1. Install this package: npm install @bytehide/webpack4-shield
  2. Update your webpack config to require this package instead
  3. No configuration changes needed - all options remain the same

Webpack 4 vs 5 Comparison

| Feature | Webpack 4 | Webpack 5 | |---------|-----------|-----------| | Plugin API | compiler.plugin() | compiler.hooks.emit.tapAsync() | | Asset Objects | Function-based | Arrow function syntax | | Node.js Support | >= 8.0.0 | >= 10.13.0 | | Package Name | @bytehide/webpack4-shield | @bytehide/webpack-shield |


Contributing

Have ideas or suggestions? We'd love to hear from you! Open an issue or submit a pull request on the GitHub repository.


License

Bytehide Shield is available under the MIT License. Feel free to use it for personal and commercial projects.


Happy coding but keep it safe with @bytehide/webpack4-shield! 🛡️

Note: This is the Webpack 4 compatible version. For Webpack 5+, use @bytehide/webpack-shield.