Ich habe eine sehr einfache Anwendung, mit ASP 4/MVC 5 und Typoskript (2.3.1.0)Modul nicht definiert ist, wird die Exporte nicht definiert - mit Typoskript + reagieren
Hier ist das Grundlayout:
tsconfig.json
{
"compileOnSave": true,
"compilerOptions": {
"noImplicitAny": true,
"noEmitOnError": true,
"removeComments": false,
"sourceMap": true,
"target": "es5",
"jsx": "preserve",
"module": "commonjs",
"allowSyntheticDefaultImports": true
},
"include": [
"node_modules/@types/**/*.d.ts",
"Scripts/**/*.ts",
"Scripts/**/*.tsx"
]
}
app.tsx (kompiliert für Visual Studio Typoskript Tools app.js)
import React, { Component } from 'react';
interface FooProps {
name: string;
}
export default class Hello extends React.Component<FooProps, undefined> {
render() {
return <h1>Hello from {this.props.name} !</h1>
}
}
_Layout.cshtml
<body>
@RenderBody()
<script type="text/javascript" src="~/Scripts/jquery-2.2.4.js"></script>
<script type="text/javascript" src="~/node_modules/react/react.js"></script>
<script type="text/javascript" src="~/node_modules/react-dom/dist/react-dom.js"></script>
<script type="text/javascript" src="~/Scripts/app.js"></script>
</body>
Wenn ich laufe, dies in der Konsole angezeigt:
Ich versuche, dies zu tun, ohne etwas mit wie browserify/webpack. Meine Frage ist, ist es möglich ... und wenn ja, wie?
bearbeiten
app.jsx sieht nach der TSX -> jsx transpilation:
"use strict";
var __extends = (this && this.__extends) || (function() {
var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
var react_1 = require("react");
var Hello = (function (_super) {
__extends(Hello, _super);
function Hello() {
return _super !== null && _super.apply(this, arguments) || this;
}
Hello.prototype.render = function() {
return <h1>Hello from {this.props.name} !</h1>;
};
return Hello;
}(react_1.default.Component));
//# sourceMappingURL=app.jsx.map
Hinweis, der Fehler ausgelöst wird hier:
Object.defineProperty(exports, "__esModule", { value: true });
Uncaught ReferenceError: exports is not defined
Wie sieht das 'app.js' beim transpilieren aus ..? – Searching
@Searching Eine Bearbeitung mit der transpilierten jsx hinzugefügt. – mariocatch
Sie benötigen SystemJS oder Webpack, um diese ES-Modul-Syntax dynamisch zu analysieren. Einige Browser unterstützen dies derzeit, reichen jedoch nicht aus, um eine vollständige App zu erstellen. –