2016-12-02 83 views
4

我试图从'@ angular/upgrade/static'导入{UpgradeComponent} ; 使用ngupgrade在angular2中使用angular1指令,但我得到这个错误。意外的令牌导出 - 角2

代码:

import { Directive, ElementRef, Injector } from '@angular/core'; 
import { UpgradeComponent } from '@angular/upgrade/static'; 
@Directive({ 
    selector: 'help' 
}) 
export class HelpComponentA1Directive extends UpgradeComponent { 
    constructor(elementRef: ElementRef, injector: Injector) { 
     super('help', elementRef, injector); 
    } 
} 
+0

错误在哪里?该错误的显示栈跟踪请 –

+0

Rehban, 错误消息: main.bundle.js:84未捕获的SyntaxError:意外令牌出口 在本条>出口{downgradeComponent}从”控制台所示 误差./ SRC/AOT/downgrade_component'; –

+0

@johnsam Stacktrace意味着你不应该发布一行,而是发布一堆来自根目录的调用。 –

回答

0

export不是一个javascript关键字,不知何故您的浏览器加载.ts文件时应当加载编译.js文件。

根据您使用捆绑模块的方法,解决此问题的解决方案可能是任何事情。但是你有一个指令,告诉浏览器当它看到@angular/upgrade/static时,它应该加载node_modules/@angular/upgrade/static.ts。它应改为加载的

  • node_modules/@angular/upgrade/static.js一个或
  • node_modules/@angular/upgrade/bundles/static.umd.js

另一个潜在的问题,你可以有(和我遇到这种多次)是你已经注释掉一个import陈述到@angular/upgrade/static某处。

+0

感谢您的帮助。看起来webpack中的根被设置在不同的地方。它现在有效。 –

+0

@johnsam你在你的webpack配置中改变了什么?我的设置也有类似的问题。 – TheBlueMan

+0

@bluestring \t \t \t \t module.exports = { \t \t \t \t \t项:{ \t \t \t \t \t \t厂商: './app/vendor', \t \t \t \t \t \t主:” ./ app/main', \t \t \t \t \t \t css :'./app/styles。少 \t \t \t \t \t}, \t \t \t \t \t输出:{ \t \t \t \t \t \t路径:__dirname, \t \t \t \t \t \t文件名:” ./build/[name].bundle .js“ \t \t \t \t \t}, \t \t \t \t \t决心:{ \t \t \t \t \t \t根:path.join(__目录名称, '应用'), \t \t \t \t \t}, \t \t \t \t \t模块:{ \t \t \t \t \t \t l oaders: \t \t \t \t \t \t \t { \t \t \t \t \t \t \t \t测试:/\.ts/, \t \t \t \t \t \t \t \t装载机:[ 'TS-装载机'], \t \t \t \t \t \t \t \t排除:/ node_modules/ \t \t \t \t \t \t \t} \t \t \t \t \t \t] \t \t \t \t \t} \t \t \t \t}; –