Sweetalert: Angular 5.2.3 - ERROR TypeError: sweetalert_1.default bukan fungsi

Dibuat pada 6 Feb 2018  ·  13Komentar  ·  Sumber: t4t5/sweetalert

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); } });

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:

import * as _swal from 'sweetalert';
import { SweetAlert } from 'sweetalert/typings/core';
const swal: SweetAlert = _swal as any;

swal('test');

Semua 13 komentar

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.

Memiliki kesalahan yang sama

image

+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

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

krishnamraju picture krishnamraju  ·  3Komentar

rapeflower picture rapeflower  ·  4Komentar

girishbr picture girishbr  ·  5Komentar

mateuszjarzewski picture mateuszjarzewski  ·  4Komentar

daftspunk picture daftspunk  ·  4Komentar