离子2中无法从JS切换到TS

时间:2016-04-25 17:19:08

标签: javascript typescript angular ionic2

我更改了应用文件的文件扩展名,包括app / app.js

Error: Cannot find module 'app/app.js' from 'app_folder'

它没有告诉我应该查看哪个文件来修复错误。

我尝试用git grep查看并阅读一些关于Angular2的入口点,以找出它的加载位置,但还没有运气。

2 个答案:

答案 0 :(得分:3)

在Ionic2项目中使用TypeScript不仅仅是切换文件的扩展名; - )

您需要将TypeScript编译器与gulp-tsc'插件集成到Gulp中:

var typescript = require('gulp-tsc');

(...)

gulp.task('compile', function() {
  gulp.src(paths.src)
    .pipe(typescript({
      emitError: false
    }))
    .pipe(gulp.dest('www/js/'))
});

此页面可以为您提供帮助:

答案 1 :(得分:2)

Thierry Templier让我走上正轨,这就是答案。

以防其他人想知道的文件。

Ionic2与ionic1不同,现在基本上使用browserify。要从ES6切换到TS,您需要为项目设置typscirpt并设置依赖项,如下所示:

  1. gulpfile.js更改var buildBrowserify = require('ionic-gulp-browserify-es2015');
     var buildBrowserify = require('ionic-gulp-browserify-typescript');
  2. package.json更改ionic-gulp-browserify-es2015": "^1.0.2"
    "ionic-gulp-browserify-typescript": "^1.0.0"
  3. Install typescript

    3.1 npm install typings --global

    3.2 tsd query node --action install --save

  4. 确保您有文件your_app/typings/main.d.ts
    内容为:/// <reference path="main/ambient/es6-shim/index.d.ts" />

  5. 最后是tsconfig.json文件

    tsconfig{ "compilerOptions": { "target": "es5", "module": "commonjs", "emitDecoratorMetadata": true, "experimentalDecorators": true }, "filesGlob": [ "**/*.ts", "!node_modules/**/*" ], "exclude": [ "node_modules", "typings/main", "typings/main.d.ts" ], "compileOnSave": false, "atom": { "rewriteTsconfig": false } }