Skip to content

bakugod/craco-alias

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

craco-alias

npm Travis (.com)

A craco plugin for automatic aliases generation for Webpack and Jest.

List of Contents

Installation

  1. Install craco

  2. Install craco-alias:

    npm i -D craco-alias
  3. Edit craco.config.js:

    const CracoAlias = require("craco-alias");
    
    module.exports = {
      plugins: [
        {
          plugin: CracoAlias,
          options: {
            // craco-alias options
            // please see below
          }
        }
      ]
    };
  4. Go to Examples section

Options

  • source: One of "options", "jsconfig", "tsconfig"
    Defaults to "options"

  • aliases: An object with aliases names and paths
    Defaults to {}

  • tsConfigPath: A path to tsconfig file
    Only required when source is set to "tsconfig"

Examples

Specify aliases manually (source: "options")

Note: you don't need to add /* part for directories in this case

/* craco.config.js */

const CracoAlias = require("craco-alias");

module.exports = {
  plugins: [
    {
      plugin: CracoAlias,
      options: {
        source: "options",
        aliases: {
          "@file": "src/file.js",
          "@dir": "src/some/dir"
        }
      }
    }
  ]
};
Use aliases from jsconfig.json (source: "jsconfig")
/* craco.config.js */

const CracoAlias = require("craco-alias");

module.exports = {
  plugins: [
    {
      plugin: CracoAlias,
      options: {
        source: "jsconfig"
      }
    }
  ]
};

Note: your jsconfig should always have baseUrl and paths properties

/* jsconfig.json */

{
  compilerOptions: {
    baseUrl: "src",
    paths: {
      "@file": ["file.js"],
      "@dir/*": ["dir/*", "dir"]
    }
  }
}
Use aliases from tsconfig.json (source: "tsconfig")
/* craco.config.js */

const CracoAlias = require("craco-alias");

module.exports = {
  plugins: [
    {
      plugin: CracoAlias,
      options: {
        source: "tsconfig",
        // as you know, CRA doesn't allow to modify tsconfig's compilerOptions
        // so you should create a separate JSON file and extend tsconfig.json from it
        // and then just specify its path here:
        tsConfigPath: "tsconfig.paths.json"
      }
    }
  ]
};
/* tsconfig.paths.json */

{
  compilerOptions: {
    baseUrl: "src",
    paths: {
      "@file": ["file.js"],
      "@dir/*": ["dir/*", "dir"]
    }
  }
}

Migrating from cra-alias

  1. Install craco and craco-alias:

    npm i -D @craco/craco craco-alias
  2. Create a craco.config.js file in the root directory:

    See tsconfig example in the Examples section

    /* craco.config.js */
    
    const CracoAlias = require("craco-alias");
    
    module.exports = {
      plugins: [
        {
          plugin: CracoAlias,
          options: {
            source: "jsconfig"
          }
        }
      ]
    };
  3. Update the existing calls to cra-alias in the scripts section of your package.json file to use the craco CLI:

    /* package.json */
    
    "scripts": {
    -   "start": "cra-alias start",
    +   "start": "craco start",
    -   "build": "cra-alias build",
    +   "build": "craco build"
    -   "test": "cra-alias test",
    +   "test": "craco test"
    }
  4. Done! You can also remove cra-alias:

    npm r -D cra-alias

About

A craco plugin for automatic aliases generation for Webpack and Jest

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%