Stack Overflow is a community of 4.7 million programmers, just like you, helping each other.

Join them; it only takes a minute:

Sign up
Join the Stack Overflow community to:
  1. Ask programming questions
  2. Answer and help your peers
  3. Get recognized for your expertise

I am trying to automate the typescript compilation with the new angular 2.0 beta.

The project structure is:

myapp
|--node_modules
     |---angular2
            |--core.d.ts
            |--...
|--lib
    |--resources
         |--app
             |--app.component.ts
|--typings
     |--..
.
|--package.json
|--gulpfile.js

app.component.ts excerpt:

import {Component, View} from 'angular2/core';
import {TechnologiesService} from './services';

When I run the typescript command (tsc) directly from the shell everything goes well and the javascript files are generated. However when I run my gulp compile task there are some errors because it doesn't find angular2/core and angular2/platform/browser modules. Why?

[16:35:55] Using gulpfile C:\dev\myapp\gulpfile.js
[16:35:55] Starting 'compile-ts'...
[16:35:55] Compiling TypeScript files using tsc version 1.8.2
[16:35:56] [tsc] > lib/resources/app/app.component.ts(1,46): error TS2307: Cannot find module 'angular2/core'.
[16:35:56] [tsc] > lib/resources/app/app.component.ts(44,14): error TS1219: Experimental support for decorators is a feature that is subject to change in a future release. Set the 'experimentalDecorators' option to remove this warning.
[16:35:56] [tsc] > lib/resources/app/main.ts(1,28): error TS2307: Cannot find module 'angular2/platform/browser'.
[16:35:56] Failed to compile TypeScript: Error: tsc command has exited with code:2

events.js:154
      throw er; // Unhandled 'error' event
      ^
 Error: Failed to compile: tsc command has exited with code:2

gulpfile typescript compilation task:

var gulp = require('gulp');
var plugins = require('gulp-load-plugins')();
var typescript = require('gulp-tsc');
gulp.task('compile-ts', function(){
  return gulp.src(['./lib/resources/app/**/*.ts'])
    .pipe(typescript({"target": "es5", "module": "system", "moduleResolution": "node", "sourceMap": true,
                      "experimentalDecorators": true, "emitDecoraasdftorMetadata": true, "removeComments": false,
                      "noImplicitAny": false}))
    .pipe(gulp.dest('./public/app/'));
});
share|improve this question
    
Do you have typings installed and included? Eg. /// <reference path="../typings/main.d.ts" /> – Martin Mar 1 at 15:53
    
When I ran npm install the typings folder was created (myapp/typings). Just tried adding /// <reference path="../../../typings/main.d.ts" /> but still complains about angular2/core. Also put /// <reference path="../../../node_modules/angular2/core.d.ts" />and nothing changes. – codependent Mar 1 at 16:01
    
I'm guessing this is a working directory issue. Have you tried specifying rootDir? – Harangue Mar 1 at 16:03
    
@Harangue yes, it seems related to the working dir. I tried setting "sourceRoot: "./" as parameter in .pipe(typescript({}) but same result...Other test with "sourceRoot: "../../../", etc... – codependent Mar 1 at 16:09
    
Do you have a local typescript installation? You could try using the global one. – Harangue Mar 1 at 16:13

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Browse other questions tagged or ask your own question.