J'obtiens cette erreur lors de l'utilisation d'es5. Mais cela fonctionne bien sur 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);
}
});
J'ai commencé à avoir cette erreur lorsque j'ai décommenté les lignes suivantes afin que mon projet soit compatible avec IE9, 10 et 11. Situé dans 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';
Changer la "cible" en es6 comme vous le suggérez interrompt mon application sur IE 11 car apparemment les fonctions de flèche es6 ne sont pas encore prises en charge sur IE 11 et la compilation de mon projet générera une erreur.
+1
J'ai la même erreur !
Moi aussi.
J'ai résolu le problème en passant à sweetalert 2. Je ne sais pas si c'est développé par la même équipe (donc je suis désolé pour la propagande sinon).
J'espère que cela pourra être utile pour ceux qui ont le même problème et je serais heureux de revenir à swal 1 si cela est résolu.
Bon codage !
Salut les gars.
Cela semble être lié à ce bogue dans Angular CLI où les exportations par défaut sont gérées différemment dans dev. Ils semblent l'avoir corrigé dans la v6.0.0-beta.4
Avez-vous toujours des erreurs lors de l'exécution de ng serve --prod
?
Alternativement, vous pouvez utiliser cette solution de contournement quelque peu sale :
import * as _swal from 'sweetalert';
import { SweetAlert } from 'sweetalert/typings/core';
const swal: SweetAlert = _swal as any;
swal('test');
@lionralfs Cela fonctionne bien.
@lionralfs tu es un vrai lion, ça marche bien.
La version npm n'exporte pas default
propriété
La documentation suggère d'utiliser export =
au lieu de export default
dans ce cas : https://www.typescriptlang.org/docs/handbook/modules.html#export --and-import--require
L'importation correspondante ressemble à ceci :
import swal = require("sweetalert");
Oui, c'est une syntaxe non standard, ce qui posera des problèmes aux utilisateurs ciblant les modules ES. En activant les importations synthétiques ou en utilisant la syntaxe import * as swal
il est possible de contourner ce problème, mais la bonne solution serait soit de corriger les frappes, soit d'ajouter simplement module.exports.default = module.exports
à la fin du fichier JS principal afin les gens peuvent l'importer en tant que module ES.
Super! J'ai fini
Modifier node_modules/sweetalert/typings/sweetalert.d.ts à partir de ...
`importer swal, {SweetAlert} depuis" ./core " ;
déclarer global {
const swal : SweetAlert ;
const sweetAlert: SweetAlert;
}exporter le swal par défaut ;
exporter en tant qu'espace de noms swal ; `
à ...
`importer swal, {SweetAlert} depuis" ./core " ;
exporter le swal par défaut ;
exporter en tant qu'espace de noms swal ; `
J'ai eu le même problème avec ReactJS, mais en utilisant https://github.com/sweetalert/sweetalert-with-react l'a résolu
Commentaire le plus utile
Salut les gars.
Cela semble être lié à ce bogue dans Angular CLI où les exportations par défaut sont gérées différemment dans dev. Ils semblent l'avoir corrigé dans la v6.0.0-beta.4
Avez-vous toujours des erreurs lors de l'exécution de
ng serve --prod
?Alternativement, vous pouvez utiliser cette solution de contournement quelque peu sale :