一尘不染

未捕获的ReferenceError:未定义导出并且需要

angularjs

我正在使用angularjs和Typescript创建一些应用程序,但是我无法解决此错误,

这是我的* .ts代码

export var NgApp = new application.Startup();

///<reference path="../../../../../typings/tsd.d.ts"/>
import {NgApp} from "../../bootstrap";



module views.components.home {
    export class HomeComponent {
        public constructor() {
        }

        public static factory():Function[] {
            return [
                () => new HomeComponent()
            ]
        }

    }

}

NgApp.registerComponents(views.components.home,() => this.app.controller);

这是我的GULP任务

let tsResult = gulp.src('src/**/*.ts').pipe(ts({
    module: 'commonjs',
    sourceMap: true
}));

let taskTs = tsResult.js.pipe(gulp.dest('built/'));

这是我的错误:未捕获的ReferenceError:导出未定义

问题是:如何在打字稿中使用类似es6的导入?我缺少什么?


阅读 235

收藏
2020-07-04

共1个答案

一尘不染

我使用angular 1.6和webpack,当我将模块更改为 “ umd”* 时,它可以在我这边使用 *

UMD:通用模块定义这推动了支持两种样式(AMD和CommonJS)的“通用”模式的推动

参考:http//davidbcalhoun.com/2014/what-is-amd-commonjs-and-
umd/

更改后粘贴到这里是我的tsconfig.json,我运行$ tsc

{
  "compilerOptions": {
    "target": "es5",
    "module": "umd",
    "moduleResolution": "node",
    "sourceMap": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "lib": [ "es2015", "dom" ],
    "noImplicitAny": true,
    "removeComments": true,
    "preserveConstEnums": true,
    "allowUnreachableCode": true
  },
  "exclude": [
    "node_modules"
  ]
}

然后我的 “未定义导出” 错误消失了。

2020-07-04