es5の使用中にこのエラーが発生します。 ただし、es6では正常に動作します。
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);
}
});
プロジェクトをIE9、10、11と互換性を持たせるために、次の行のコメントを外したときにこのエラーが発生し始めました。 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';
提案されているように「ターゲット」をes6に変更すると、IE 11でアプリが壊れます。これは、明らかにes6の矢印関数がIE 11でまだサポートされておらず、プロジェクトをコンパイルするとエラーが発生するためです。
+1
同じエラーが発生しています。
私もです。
私はsweetalert2に交換することで問題を解決しました。同じチームによって開発されたかどうかはわかりません(そうでない場合は宣伝を申し訳ありません)。
同じ問題を抱えている人に役立つことを願っています。これが修正されたら、swal1に戻って喜んでいます。
ハッピーコーディング!
やあみんな。
これは、デフォルトのエクスポートが開発で異なる方法で処理されるAngularCLIのこのバグに関連しているようです。 彼らはv6.0.0-beta.4でそれを修正したようです
ng serve --prod
実行してもエラーが発生しますか?
または、このやや汚い回避策を使用することもできます。
import * as _swal from 'sweetalert';
import { SweetAlert } from 'sweetalert/typings/core';
const swal: SweetAlert = _swal as any;
swal('test');
@lionralfs正常に動作します。
@lionralfsあなたは真のライオンです。
npmリリースはdefault
プロパティをエクスポートしないため、入力が間違っています。 タイプは、ESモジュールとして扱われるべきであることを示していますが、npmリリースはCommonJSモジュールです。
ドキュメントでは、この場合、 export default
代わりにexport =
を使用することを提案しています: https ://www.typescriptlang.org/docs/handbook/modules.html#export --and-import--require
一致するインポートは次のようになります。
import swal = require("sweetalert");
はい、これは非標準の構文であり、ESモジュールを対象とするユーザーに問題を引き起こします。 合成インポートを有効にするか、 import * as swal
構文を使用することでこれを回避できますが、適切な解決策は、入力を修正するか、メインのJSファイルの最後にmodule.exports.default = module.exports
を追加することです。人々はそれをESモジュールとしてインポートすることができます。
素晴らしい! 私はこれで終わりです
node_modules / sweetalert / types /sweetalert.d.tsを..から編集します。
`import swal、{SweetAlert} from" ./core ";
グローバルを宣言する{
const swal:SweetAlert;
const sweetAlert:SweetAlert;
}デフォルトのスワルをエクスポートします。
名前空間swalとしてエクスポート; `
に ...
`import swal、{SweetAlert} from" ./core ";
デフォルトのスワルをエクスポートします。
名前空間swalとしてエクスポート; `
ReactJSでも同じ問題が発生しましたが、 https://github.com/sweetalert/sweetalert-with-reactを使用すると修正されました
最も参考になるコメント
やあみんな。
これは、デフォルトのエクスポートが開発で異なる方法で処理されるAngularCLIのこのバグに関連しているようです。 彼らはv6.0.0-beta.4でそれを修正したようです
ng serve --prod
実行してもエラーが発生しますか?または、このやや汚い回避策を使用することもできます。