【问题标题】:Object.defineProperty(exports, "__esModule", { value: true });Object.defineProperty(exports, "__esModule", { value: true });
【发布时间】:2017-08-07 01:46:59
【问题描述】:

在 typescript 中导入 json 时出错

错误信息: 未捕获的 ReferenceError:未定义导出

books.ts

import data from './books.json';

class books{
    //...code
    constructor(){
        //...code
    }
}

books.js

"use strict";
**Object.defineProperty(exports, "__esModule", { value: true });**
class books {
    //...code
    constructor() {
        //...code
    }
}

【问题讨论】:

    标签: json typescript


    【解决方案1】:

    你的代码

    import data from './books.json';
    

    暗示你在一个模块中运行。要在浏览器上运行模块,您需要一个模块捆绑器。例如https://webpack.github.io/

    更多

    使用 TypeScript 的 webpack 快速入门https://basarat.gitbooks.io/typescript/content/docs/quick/browser.html

    【讨论】:

    • 2019 年很晚的评论:这些天浏览器支持 ES 模块就好了,只要你使用<script src="..." type="module"></script>。无需捆绑。事实上,您的应用程序完全有可能加载得更快,并且缓存得更好,作为常规模块文件而不是捆绑到单个巨大的代码中。尽管您几乎总是希望使用<script src="..." type="module" defer></script> 以便您的应用程序与页面并行加载,但在完全解析DOM 之前不会执行。 (另外:不再“将脚本放在正文的末尾”)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-07
    • 1970-01-01
    • 2018-04-28
    • 1970-01-01
    • 1970-01-01
    • 2021-09-08
    相关资源
    最近更新 更多