Ich habe ein test.js
Skript, das eine Klasse App
definiert und die aus einer HTML-Datei geladen wird, und alles funktioniert.Zugriff auf "öffentliche" Mitglieder nach der Bündelung mit browserify oder webpack
Wenn ich ein testBundle.js
Bündel von test.js
, mit browserify oder webpack, der Klasse App
innerhalb testBundle.js
scheint nicht mehr definiert.
Wie soll ich den Code schreiben oder welche Optionen gebe ich zum browserify um App zu definieren und benutze es aus HTML wie vorher, aber aus dem Bundle ?.
Der Fehler, den ich nach dem Bündeln erhalten ist:
<html>
<script src="testBundle.js"></script>
<script>
var app = new App();
</script>
</html>
test.js:
'use strict';
class App {
constructor() {
console.log("App ctor")
}
}
der Befehl das Bündel zu bauen
Uncaught ReferenceError: App is not defined
Die HTML-Datei die folgende ist :
browserify -t [ babelify --presets [ es2015 ] ] test.js -o testBundle.js
Es scheint mir, innerhalb des Pakets, dass App tatsächlich privat ist.
testBundle.js
(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
'use strict';
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var App = function App() {
_classCallCheck(this, App);
console.log("App ctor");
};
},{}]},{},[1]);
All Javascript im Browser, ES6 verwenden.
Sorry, aber ich glaube, (Hoffnung) gibt es bessere Möglichkeiten, das Problem zu lösen, ich Ich starte ein Kopfgeld – cdarwin