【问题标题】:ReactJS.net - How do I use ES6 modulesReactJS.net - 我如何使用 ES6 模块
【发布时间】:2015-11-07 21:19:36
【问题描述】:

我已经成功运行了 ReactJS.Net,包括使用 ES6 语法。

我正在使用默认的 Jsx 转换管道,它使用 Babel。 在浏览器中查看源代码,我可以看到 ES6 代码已被 ReactJS.Net 转换为 ES5

我一直无法让模块工作。

浏览器给了我2个错误:

Uncaught ReferenceError: exports is not defined
Uncaught ReferenceError: require is not defined

如何使用 ES6 模块?

最简单的例子:

Lib.js

export function square(x) {
    return x * x;
}

UserOfLib.js

import { square } from 'Lib';
console.log(square(11)); 

转换成这个(查看浏览器源代码):

库:

// @hash v3-AD133907ABEC5D32B3768A3AF2301FC9
// Automatically generated by ReactJS.NET. Do not edit, your changes will be overridden.
// Version: 2.0.1 (build 5e9476a)
// Generated at: 08-Nov-15 6:40:26 AM
///////////////////////////////////////////////////////////////////////////////
Object.defineProperty(exports, "__esModule", {
    value: true
});
exports.square = square;

function square(x) {
    return x * x;
}

UserOfLib:

// @hash v3-812C209AFED25C2B4507E5769B0D899B
// Automatically generated by ReactJS.NET. Do not edit, your changes will be overridden.
// Version: 2.0.1 (build 5e9476a)
// Generated at: 08-Nov-15 6:40:26 AM
///////////////////////////////////////////////////////////////////////////////
var _Lib = require('Lib');

console.log((0, _Lib.square)(11)); // 121

【问题讨论】:

    标签: reactjs.net


    【解决方案1】:

    目前,ReactJS.Net 不处理模块。如果你想使用模块,你需要使用 Webpack 或 Browserify 之类的模块捆绑器来将模块编译成原生 JavaScript。在 ReactJS.NET 中实现对模块的支持本身是一项非常重要的工作,因为它需要处理依赖关系并以正确的顺序加载模块,并且已经存在像 Webpack 这样经过良好测试的良好解决方案。

    【讨论】:

    • 这两个可以和JSX处理结合使用吗?
    猜你喜欢
    • 1970-01-01
    • 2019-10-28
    • 2017-03-10
    • 1970-01-01
    • 2020-01-15
    • 2019-10-15
    • 2021-01-21
    相关资源
    最近更新 更多