Gulp 未捕获引用错误:未定义导出,也不需要

7ivaypg9  于 2022-12-08  发布在  Gulp
关注(0)|答案(3)|浏览(132)

我正在使用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/'));

这是我的错误:未捕获引用错误:未定义导出
问题是:我如何在typescript中像es6一样使用import?我缺少什么?

cnjp1d6j

cnjp1d6j1#

我使用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"
  ]
}

那么我的“未定义导出”错误就消失了。

e5nszbig

e5nszbig2#

点击这里“Solved finally”我也得到同样的错误我改变了模块:“commonjs”到“module”:“es6”,因为目标ES 5删除导入/导出语句,所以这些工具不能删除未使用的导出。

{
    "compilerOptions": {
    "target": "es5",
    "module": "es6",
    "moduleResolution": "node",
    "sourceMap": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "lib": [ "es2015", "dom" ],
    "noImplicitAny": true,
    "suppressImplicitAnyIndexErrors": true
    }

}
uxhixvfz

uxhixvfz3#

我如何在typescript中像es6一样使用import?我缺少什么?
您需要使用模块加载器。下面是一个使用webpack的示例:https://github.com/AngularClass/angular2-webpack-starter

相关问题