javascript – 如何使用browserify从node_modules加载typescript模块?

当我运行tsc时,一切都运行得很好.但是,我无法理解您是如何从节点模块导入其他打字稿模块的.

这是我的gulp文件的重要部分:

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'}));

});

我用的时候

import {DataRepository, List} from "tsmvc";

其中tsmvc是一个打字稿模块节点模块,我得不到模块tsmvc. Atom没有抱怨并向我展示intellisense,tsc不抱怨,但tsify确实如此.
谁能指点我做一个类似的东西或解释过程的gulp文件?

这是github回购:https://github.com/Davste93/typescript-mvc-consumer/blob/master/gulpfile.js

最佳答案 在tsify版本0.15.3之前,无法从node_modules中导入TypeScript文件.

在内部,tsify插件创建一个转换,Browserify不会在node_modules下转换文件以进行非全局转换.在tsify的0.15.3版本中,添加了全局选项,可以按如下方式指定:

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