Code Monkey home page Code Monkey logo

ts-transform-paths's Introduction

ts-transform-paths

travis npm-version npm-downloads license

Use this to load modules whose location is specified in the paths section of tsconfig.json.

Install

yarn add ts-transform-paths -D

Requirement

TypeScript >= 2.4.1

How to use

Unfortunately, TypeScript itself does not currently provide any easy way to use custom transformers (See microsoft/TypeScript#14419). The followings are the example usage of the custom transformer.

tsconfig.json

{
  "compilerOptions": {
    "paths": {
      "@schema": ["./src/schema"],
      "@modules/*": ["./src/modules/*"]
    }
  }
}

webpack (with ts-loader or awesome-typescript-loader)

// webpack.config.js
const pathsTransformer = require("ts-transform-paths").default;

module.exports = {
  // ...
  module: {
    rules: [
      {
        test: /\.ts$/,
        loader: "ts-loader", // or 'awesome-typescript-loader'
        options: {
          getCustomTransformers: (program) => pathsTransformer()
        }
      }
    ]
  }
};

Rollup (with rollup-plugin-typescript2)

// rollup.config.js
import typescript from "rollup-plugin-typescript2";
import pathsTransformer from "ts-transform-paths";

export default {
  // ...
  plugins: [
    typescript({
      transformers: [
        (service) => pathsTransformer()
      ]
    })
  ]
};

ttypescript

See ttypescript's README for how to use this with module bundlers such as webpack or Rollup.

// tsconfig.json
{
  "compilerOptions": {
    // ...
    "plugins": [{ "transform": "ts-transform-paths" }]
  }
  // ...
}

ts-node

// my-ts-script.ts
import { MyClass } from "@schema";

const myClass = new MyClass("Message");
// index.js
const pathsTransformer = require("ts-transform-paths").default;

require("ts-node").register({
  transformers: pathsTransformer()
});

require("./my-ts-script");
yarn node ./index.js

Thanks

ts-transform-paths's People

Contributors

dependabot[bot] avatar g-rath avatar onive avatar parisholley avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.