Ich erhalte diesen Fehler bei der Verwendung von es5. Aber es funktioniert gut auf es6.
Sweetalert-Version: 2.1.0
tsconfig.json
{
"compileOnSave": false,
"compilerOptions": {
"outDir": "./dist/out-tsc",
"sourceMap": true,
"declaration": false,
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es5",
"typeRoots": [
"node_modules/@types"
],
"lib": [
"es2015",
"dom"
]
}
}
import swal from 'sweetalert';
swal({
text: 'Your request has been processed successfully.',
icon: 'success'
}).then((value) => {
if (value) {
console.log(value);
}
});
Dieser Fehler trat auf, als ich die folgenden Zeilen auskommentiert habe, damit mein Projekt mit IE9, 10 und 11 kompatibel ist. Befindet sich in polyfills.ts
import 'core-js/es6/symbol';
import 'core-js/es6/object';
import 'core-js/es6/function';
import 'core-js/es6/parse-int';
import 'core-js/es6/parse-float';
import 'core-js/es6/number';
import 'core-js/es6/math';
import 'core-js/es6/string';
import 'core-js/es6/date';
import 'core-js/es6/array';
import 'core-js/es6/regexp';
import 'core-js/es6/map';
import 'core-js/es6/weak-map';
import 'core-js/es6/set';
import 'core-js/es7/array';
Das Ändern des "Ziels" in es6, wie Sie vorschlagen, macht meine App auf IE 11 kaputt, da anscheinend es6-Pfeilfunktionen noch nicht auf IE 11 unterstützt werden und das Kompilieren meines Projekts einen Fehler auslöst.
+1
Ich habe den gleichen Fehler!
ich auch.
Ich habe das Problem gelöst, indem ich zu Sweetalert 2 gewechselt habe. Ich bin mir nicht sicher, ob es vom selben Team entwickelt wurde (so tut es mir leid für die Propaganda, wenn nicht).
Ich hoffe, es kann für diejenigen nützlich sein, die das gleiche Problem haben, und ich würde mich freuen, zurück zu swal 1 zu wechseln, wenn dies behoben wird.
Viel Spaß beim Codieren!
Hallo Leute.
Dies scheint mit diesem Fehler in der Angular-CLI zusammenzuhängen, bei dem Standardexporte in dev anders gehandhabt werden. Sie scheinen es in v6.0.0-beta.4 behoben zu haben
Erhalten Sie immer noch Fehler, wenn Sie ng serve --prod
ausführen?
Alternativ können Sie diesen etwas schmutzigen Workaround verwenden:
import * as _swal from 'sweetalert';
import { SweetAlert } from 'sweetalert/typings/core';
const swal: SweetAlert = _swal as any;
swal('test');
@lionralfs Es funktioniert gut.
@lionralfs du bist ein echter Löwe, funktioniert gut.
Die npm-Version exportiert keine default
Eigenschaft, daher sind die Eingaben falsch. Die Typisierung zeigt an, dass es als ES-Modul behandelt werden sollte, aber die npm-Version ist ein CommonJS-Modul.
Die Dokumentation schlägt vor, in diesem Fall export =
anstelle von export default
zu verwenden: https://www.typescriptlang.org/docs/handbook/modules.html#export --and-import--require
Der passende Import sieht so aus:
import swal = require("sweetalert");
Ja, es handelt sich um eine vom Standard abweichende Syntax, die für Benutzer, die auf ES-Module abzielen, Probleme bereiten kann. Durch Aktivieren synthetischer Importe oder Verwenden der import * as swal
Syntax ist es möglich, dies zu umgehen, aber die richtige Lösung wäre, entweder die Eingaben zu korrigieren oder einfach module.exports.default = module.exports
am Ende der JS-Hauptdatei hinzuzufügen, also Leute können es als ES-Modul importieren.
Groß! ich bin fertig
Bearbeiten Sie node_modules/sweetalert/typings/sweetalert.d.ts von ...
`import swal, {SweetAlert} from" ./core ";
global deklarieren {
const swal: SweetAlert;
const sweetAlert: SweetAlert;
}Standard-Swal exportieren;
als Namespace swal exportieren; `
zu ...
`import swal, {SweetAlert} from" ./core ";
Standard-Swal exportieren;
als Namespace swal exportieren; `
Ich hatte das gleiche Problem mit ReactJS, aber mit https://github.com/sweetalert/sweetalert-with-react wurde es behoben
Hilfreichster Kommentar
Hallo Leute.
Dies scheint mit diesem Fehler in der Angular-CLI zusammenzuhängen, bei dem Standardexporte in dev anders gehandhabt werden. Sie scheinen es in v6.0.0-beta.4 behoben zu haben
Erhalten Sie immer noch Fehler, wenn Sie
ng serve --prod
ausführen?Alternativ können Sie diesen etwas schmutzigen Workaround verwenden: