从typescript构建中排除第三方库

时间:2017-07-31 10:38:50

标签: angularjs typescript gulp

我想从结果包中排除导入的库。 假设我们有下一个代码:

import * as angular from 'angular';
const app = angular.module('app',[]);

我们有这个构建任务。

function buildTs(compileOptions) {
    browserify(compileOptions)
        .plugin(tsify, tsconfig.compileOptions)
        .bundle()
        .pipe(source('bundle.js'))
        .pipe(gulp.dest(path.dest.js));
}

构建完成后,Angular lib将包含在bundle.js中。 我可以避免这种情况吗?

我的tsConfig:

{
  "compilerOptions": {
    "target": "ES5",
    "module": "commonjs",
    "noImplicitAny": false,
    "removeComments": true,
    "sourceMap": true,
    "types": [
      "angular",
      "angular-cookies",
      "angular-ui-bootstrap",
      "angular-ui-router",
      "jasmine",
      "angular-mocks"
    ]
  },
  "include": [
    "app"
  ],
  "exclude": [
    "node_modules"
  ]
}

从类型中删除类型没有帮助:)

1 个答案:

答案 0 :(得分:2)

这将使browserify忽略angularjs,然后可以从index.html添加它。

var browserify = require("browserify")

browserify()
.ignore('angular')
  

每次都包含多个文件而不添加.ignore(name)的任何选项?像这样的数组或smth?

var tsProject = ts.createProject('tsconfig.json');
gulp.task('scripts', function() { 
    var tsResult = gulp.src("lib/**/*.ts") 

    // or 
    tsProject.src() 
      .pipe(tsProject()); 

    return tsResult.js.pipe(gulp.dest('release'));
});

因此,这可能是构建Typescript文件的更简洁方法。在src中,您可以提供自己的正则表达式src文件列表。