javascript - Hvordan indlæser man typescript-moduler fra node_modules ved hjælp af browserify?


Når jeg kører tsc, kører alt perfekt. Dog kan jeg ikke forstå, hvordan man skal importere andre TypeScript-moduler fra node-moduler.

Dette er den vigtige del af min gulp-fil:

gulp.task('compile-ts', ['clean'], function(){
  var sourceTsFiles = [
    config.allTs,
    config.typings
  ];

  var bundler = browserify({
    basedir : "src",
    debug : true})
    .add("app.ts")
  //.add("typings/tsd.d.ts")
  .plugin(tsify);

  return bundler.bundle()
        .pipe(source("bundle.js"))
        .pipe(gulp.dest("build"))
        .pipe(buffer())
        .pipe(sourcemaps.init({loadMaps: true}))
        .pipe(sourcemaps.write({includeContent: false, sourceRoot: 'src'}));

});

Når jeg bruger,

import {DataRepository, List} from "tsmvc";

Hvor tsmvc er en TypeScript-modul node-modul, får jeg cannot find module tsmvc. Atom klager ikke og viser mig intellisense, tsc klager ikke, men tsify gør. Kan nogen pege mig på en gulp-fil, der gør noget lignende, eller forklare processen?

Her er github-repositoriet: https://github.com/Davste93/typescript-mvc-consumer/blob/master/gulpfile.js

Svar #1

Før version 0.15.3 af tsify var det ikke muligt at importere TypeScript-filer fra node_modules.

Internt opretter tsify-plugin'et en transform, og Browserify transformerer ikke filer under node_modules for ikke-globale transforms. I version 0.15.3 af tsify blev global-muligheden tilføjet og kan specificeres som følger:

var bundler = browserify({
    basedir: "src",
    debug: true
})
.add("app.ts")
.plugin(tsify, { global: true });

Relaterede artikler