Saya mendapatkan kesalahan ini saat menggunakan es5. Tapi itu berfungsi dengan baik di es6.
versi sweetalert: 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);
}
});
Saya mulai mengalami kesalahan ini ketika saya menghapus komentar pada baris berikut sehingga proyek saya dapat kompatibel dengan IE9, 10 dan 11. Terletak di 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';
Mengubah "target" ke es6 seperti yang Anda sarankan merusak aplikasi saya di IE 11 karena tampaknya fungsi panah es6 belum didukung pada IE 11 dan kompilasi proyek saya akan menimbulkan kesalahan.
+1
Saya mengalami kesalahan yang sama!
saya juga.
Saya memecahkan masalah dengan menukar ke sweetalert 2. Saya tidak yakin apakah itu dikembangkan oleh tim yang sama (jadi saya minta maaf untuk propaganda jika tidak).
Semoga ini bisa bermanfaat bagi mereka yang memiliki masalah yang sama dan saya akan senang untuk beralih kembali ke swal 1 jika ini diperbaiki.
Selamat mengkode!
Hai teman-teman.
Ini tampaknya terkait dengan bug ini di Angular CLI di mana ekspor default ditangani secara berbeda di dev. Mereka tampaknya telah memperbaikinya di v6.0.0-beta.4
Apakah Anda masih mendapatkan kesalahan saat menjalankan ng serve --prod
?
Atau, Anda dapat menggunakan solusi yang agak kotor ini:
import * as _swal from 'sweetalert';
import { SweetAlert } from 'sweetalert/typings/core';
const swal: SweetAlert = _swal as any;
swal('test');
@lionralfs Ini berfungsi dengan baik.
@lionralfs Anda benar-benar singa bekerja dengan baik.
Rilis npm tidak mengekspor properti default
, jadi pengetikannya salah. Pengetikan menunjukkan itu harus diperlakukan sebagai modul ES, tetapi rilis npm adalah modul CommonJS.
Dokumentasi menyarankan untuk menggunakan export =
alih-alih export default
dalam kasus ini: https://www.typescriptlang.org/docs/handbook/modules.html#export --and-import--require
Impor yang cocok terlihat seperti ini:
import swal = require("sweetalert");
Ya, ini adalah sintaks yang tidak standar, yang akan menyebabkan masalah bagi pengguna yang menargetkan modul ES. Dengan mengaktifkan impor sintetik atau menggunakan sintaks import * as swal
, Anda dapat mengatasinya, tetapi solusi yang tepat adalah memperbaiki pengetikan atau cukup menambahkan module.exports.default = module.exports
ke akhir file JS utama. orang dapat mengimpornya sebagai modul ES.
Besar! saya selesai
Edit node_modules/sweetalert/typings/sweetalert.d.ts dari ...
`impor swal, {SweetAlert} dari" ./core ";
nyatakan global {
const swal: SweetAlert;
const sweetAlert: SweetAlert;
}ekspor default swal;
ekspor sebagai namespace swal; `
ke ...
`impor swal, {SweetAlert} dari" ./core ";
ekspor default swal;
ekspor sebagai namespace swal; `
Saya memiliki masalah yang sama dengan ReactJS, tetapi menggunakan https://github.com/sweetalert/sweetalert-with-react memperbaikinya
Komentar yang paling membantu
Hai teman-teman.
Ini tampaknya terkait dengan bug ini di Angular CLI di mana ekspor default ditangani secara berbeda di dev. Mereka tampaknya telah memperbaikinya di v6.0.0-beta.4
Apakah Anda masih mendapatkan kesalahan saat menjalankan
ng serve --prod
?Atau, Anda dapat menggunakan solusi yang agak kotor ini: