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 🙏

© 2024 – Pkg Stats / Ryan Hefner

babel-plugin-7-webpack-alias

v0.2.2

Published

Babel 7 plugin for working with webpack aliases

Downloads

331

Readme

Status

This plugin is an update of babel-plugin-webpack-alias-7 Which was itself a port of the Babel 6 version

babel-plugin-7-webpack-alias

Babel 7 plugin for working with webpack aliases.

The objective of this plugin is to provide support for yarn 2 (AKA berry), ava, and webpack configs that are defined as object returning functions.

As well as support for importing your dependencies.

Hopefully it will still work with npm, your preferred testing framework (it uses jest itself), and more 'usual' webpack configs.

Some Hints for Working With Yarn 2 (berry)

If your build works OK, but your test runs are reporting errors like:

Error: Your application tried to access <Some resolve alias you used>, but it isn't declared in your dependencies; this makes the require call ambiguous and unsound.

Then the fault is yarn's

So how can you fix it? You need to replicate your webpack resolve alias settings in your package.json dependencies as links.

Here's an example:

  • If your webpack.config includes an alias like this: Actions: path.resolve(__dirname, "src/js/actions")

  • Then add the following as a dependency in your package.json: "Actions": "link:src/js/actions"

  • Then rerun plain yarn to get it to rework all of its stuff, otherwise it won't pick up on the above change.

Note in the above link statement that there is no space before or after the colon, i.e. this works link:src/js/actions, but this doesn't link: src/js/actions.

The following is from babel-plugin-webpack-alias-7

This plugin is simply going to take the aliases defined in your webpack config and replace require paths. It is especially useful when you rely on webpack aliases to keep require paths nicer (and sometimes more consistent depending on your project configuration) but you can't use webpack in a context, for example for unit testing.

Example

webpack.config.js

var path = require('path');
...

module.exports = {
    ...
    resolve: {
        ...
        alias: {
            '@libs': path.join(__dirname, '/myLibs/')
        }
    }
    ...
};

Code:

    const myLib = require('@libs/myLib');

Transpiles to:

    const myLib = require('/myLibs/myLib');

Installation

    $ npm install --save-dev babel-plugin-webpack-alias-7

Add the plugin to your .babelrc. Optionally, add a path to a webpack config file, otherwise the plugin will look for webpack.config.js or webpack.config.babel.js in the root where the build was run. Setting the config option will transform all alias destinations to be relative to the custom config.

    {
        "plugins": [
            "@babel/plugin-transform-strict-mode",
            "@babel/plugin-transform-parameters",
            "@babel/plugin-transform-destructuring",
            "@babel/plugin-transform-modules-commonjs",
            "@babel/plugin-proposal-object-rest-spread",
            "@babel/plugin-transform-spread",
            "@babel/plugin-proposal-export-default-from",
            "@babel/plugin-proposal-export-namespace-from"
        ],
        "env": {
            "test": {
                "plugins": [
                    [ "babel-plugin-webpack-alias-7", { "config": "./configs/webpack.config.test.js" } ]
                ]
            }
        }
    }

In this example, the plugin will only be run when NODE_ENV is set to test.

Notes

Changes from the Babel 6 version

  • config option no longer uses lodash templates
  • findConfig option has been removed
  • noOutputExtension option has been removed

Change my mind on their usefulness or better yet open a PR to re-add them!