代码之家  ›  专栏  ›  技术社区  ›  SidC

如何解决Typescript错误意外的令牌导入?

  •  3
  • SidC  · 技术社区  · 7 年前

    我正在为Wordpress 4.8编写一个Angular 4主题,主要用于Edge和Chrome浏览器。我的测试脚本在测试中失败。出现错误的ts:

    Uncaught SyntaxError: Unexpected token import at src/test.js:1
    

    我的tsconfig。src文件夹中的json如下所示:

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

    t配置。根级别的json是:

    {
      "compileOnSave": false,
      "compilerOptions": {
      "outDir": "./dist/out-tsc",
      "baseUrl": "src",
      "sourceMap": true,
      "declaration": false,
      "moduleResolution": "node",
      "emitDecoratorMetadata": true,
      "experimentalDecorators": true,
      "target": "es5",
      "typeRoots": [
         "node_modules/@types"
         ],
      "lib": [
         "es2016",
         "dom",
         "es5"
         ]
      }
     }
    

    我的测试。输电系统包括:

    import {BrowserDynamicTestingModule, platformBrowserDynamicTesting} from 
    "@angular/platform-browser-dynamic/testing";
    import {getTestBed} from "@angular/core/testing";
    
    declare var _karma_: any;
    declare var require: any;
    
    _karma_.loaded = function () {};
    
    getTestBed().initTestEnvironment(
        BrowserDynamicTestingModule,
        platformBrowserDynamicTesting()
    );
    
    const context = require.context('./', true, /\.spec\.ts$/);
    
    context.keys().map(context);
    
    _karma_.start();
    

    解决此错误的最佳方法是什么?

    2 回复  |  直到 7 年前
        1
  •  3
  •   basarat    7 年前

    未捕获的语法错误:在src/test处意外导入令牌。js:1

    import 应通过TypeScript编译

    修理

    确保 ts 实际上正在通过TypeScript编译器(以获取 真实的

    这是一个配置错误。 "module": "es6", "module": "commonjs", 使用网页包。

    更多

    快速启动 https://basarat.gitbooks.io/typescript/content/docs/quick/browser.html

        2
  •  2
  •   Ashish Detroja    7 年前

    如果您将cd刻录到您的,您将看到相同的问题/应用程序/用户界面目录和运行 tsc -p . 那里

    问题是你正在使用 “模块”:“系统” 在你的 t配置。json

    • node-模仿NodeJS classic中解析模块名称的方式

    • 在遍历文件夹结构查找模块时,不考虑node_模块的原始策略(请参阅 https://www.typescriptlang.org/docs/handbook/module-resolution.html 选项如果省略此选项,编译器将在目标 模块类型是commonjs和classic,否则在您的情况下也是如此 使用经典分辨率,而node_模块中的模块不使用 建立我建议在配置中明确指定分辨率:

    这有帮助吗?