Need private packages and team management tools?Check out npm Teams »


0.1.6 • Public • Published


Transform .d.ts files to look like local modules. Then rewrite your output javascript file to use actual require() statements. All this without using --module in tsc.


To generate a definition:

tsdlocal in.d.ts out.local.d.ts

To process code that uses local definitions.

tsdlocal --parsejs in.js out.js

For example for using the require("path"), you would need to write:

/// <reference path="/typings/node/node.local.d.ts"/>
import path = __require__path; // require("path")

Grunt Parsing

Grunt support is embedded. In order to parse your outputed sources as part of the build, you just need to add it:

 * Grunt project configuration.
module.exports = function(grunt) {
    // configuration for the plugins.
        tsdlocal : {
            dist : {
                files : [
                        expand: true,
                        cwd: 'dest/',
                        src: ['**/*.js'],
                        dest: 'dest/'
    // load NPM tasks:
    // register our task:
    grunt.registerTask('default', ['tsdlocal']);

Using the same source and destination works, since the task will first read the file, then process it, and only after rewriting it.

This is equivalent with running tsdlocal --parsejs for each js file.

Local definitions generation

If you want to generate namespace definitions from some module definitions, you can use the generateDefinitions option.

    tsdlocal : {
        "dist" : {
            options : {
                generateDefinitions : true
            files : [
                    src: [
                    dest: "./core-promise.local.d.ts"


There is a high chance that the local .d.ts to still need a bit of fidling from your side, namely for modules that export instances for the exports. Like so:

declare module "x" {
    export = someInstance;

If that's the case, then you probably need to assign a variable, declare the variable with the name __require__x, and the type of the instance:

declare var __require__x : someInstanceType;

and in the client do:

// instead of:
// import mymodule = __require__x; // require("x")
// do:
var mymodule = __require__x; // require("x")

The static type checking will still function as expected.


  • v0.1.6 2015-08-28 Bugfix Imports that have also classes are working. (import A = __require__x.A;)
  • v0.1.5 2015-07-22 The grunt task can also parse definitions now.
  • v0.1.4 2015-07-20 Use out.js for the standalone launcher, duh.
  • v0.1.3 2015-07-15 Use v0.1.2 grunt task to build itself.
  • v0.1.2 2015-07-15 Added Grunt task.
  • v0.1.1 2015-07-14 Documentation update.
  • v0.1.0 2015-07-10 Initial implementation.


npm i tsdlocal

DownloadsWeekly Downloads






Last publish


  • avatar