【发布时间】:2016-06-17 10:33:30
【问题描述】:
我们有一个如下所示的 gulp 脚本(仅显示相关部分):
const gulp = require('gulp');
const typescript = require('gulp-typescript');
const sourcemaps = require('gulp-sourcemaps');
const tscConfig = require('./tsconfig.json');
const inlineNg2Templates = require('gulp-inline-ng2-template');
const paths = {
distAssetsFolder: 'dist/assets',
distFolder: 'dist',
distLibFolder: 'dist/lib',
distFiles: 'dist/**/*',
srcMapFolder: './maps',
srcFiles: 'src/**/*',
srcAssetFolder: 'src/assets/**/*',
srcMainSassFile: 'src/**/main.scss',
srcTsFiles: 'src/**/*.ts',
srcTestFiles : 'src/**/*.spec.ts'
};
gulp.task('transpile-typescript', ['clean:dist'], function () {
return gulp
.src(paths.srcTsFiles)
.pipe(inlineNg2Templates({ useRelativePaths: true}))
.pipe(sourcemaps.init())
.pipe(typescript(tscConfig.compilerOptions))
.pipe(sourcemaps.write(paths.srcMapFolder))
.pipe(gulp.dest(paths.distFolder));
});
我们使用 JSPM 进行依赖管理,并在项目的根目录下添加了 jspm-config.js。
无论我们在 gulp 脚本中运行什么任务,我们都会收到以下错误:
src\app\sidebar\panel.component.ts(1,46):错误 TS2307: 找不到模块“angular2/core”。 src\app\sidebar\panel.component.ts(2,30):错误 TS2307: 找不到模块“angular2/http”。 src\app\uiComponents\demo\demo.ts(1,25): 错误 TS2307: 找不到 模块'angular2/core'。 src\app\uiComponents\modal\modal.ts(1,54): 错误 TS2307:找不到模块 'angular2/core'。 src\app\uiComponents\modal\modal.ts(2,23): 错误 TS2307: 找不到 模块“angular2/common”。
但是;该应用程序运行良好。在运行时,这些错误由我们的 jspm-config.js 文件中的映射解决,该文件包含以下内容:
"angular2": "npm:angular2@2.0.0-beta.7",
我意识到我们只需要在转换时以某种方式引用 jspm 配置,但我现在不确定如何做到这一点。
有人有什么想法吗?
【问题讨论】:
标签: typescript angular jspm gulp-typescript