Saya punya masalah dengan proses build saya terkait dengan aplikasi React saya.
Saya selalu mendapatkan kesalahan berikut:
Modul tidak ditemukan: Kesalahan: Tidak dapat menyelesaikan 'core-js / es6'
jika saya menggunakan ini di polyfill.js:
impor 'core-js / es6';
Itu package.json saya:
{
"name": "test",
"version": "1.0.0",
"main": "index.js",
"license": "MIT",
"private": true,
"devDependencies": {
"@babel/core": "^7.4.0",
"@babel/preset-env": "^7.4.2",
"@babel/preset-react": "^7.0.0",
"@babel/runtime": "^7.4.2",
"babel-loader": "^8.0.5",
"babel-preset-es2015": "^6.24.1",
"copy-webpack-plugin": "^5.0.2",
"css-hot-loader": "^1.4.4",
"eslint": "5.15.3",
"eslint-config-airbnb": "^17.1.0",
"eslint-loader": "^2.1.2",
"eslint-plugin-import": "2.16.0",
"eslint-plugin-jsx-a11y": "6.2.1",
"eslint-plugin-react": "7.12.4",
"file-loader": "^3.0.1",
"node-sass": "^4.11.0",
"prettier": "^1.16.4",
"react-hot-loader": "4.8.0",
"sass-loader": "^7.1.0",
"webpack": "^4.29.6",
"webpack-cli": "^3.3.0",
"webpack-dev-server": "^3.2.1"
},
"dependencies": {
"axios": "^0.18.0",
"core-js": "^3.0.0",
"prop-types": "^15.7.2",
"react": "^16.8.5",
"react-dom": "^16.8.5",
"react-redux": "^6.0.1",
"react-string-replace": "^0.4.1",
"redux": "^4.0.1",
"slick-carousel": "^1.8.1"
},
"scripts": {
"dev": "webpack-dev-server --hot",
"build": "webpack --colors --profile --progress --env.mode production",
"lint": "eslint ./src/ --ext .js,.jsx"
}
}
Bisakah seseorang membantu di sini?
npm
build
yarnpkg
package.json
Gutelaunetyp
sumber
sumber
Jawaban:
Impor telah berubah untuk core-js versi 3.0.1 - misalnya
import 'core-js/es6/array';
danimport 'core-js/es7/array';
sekarang dapat disediakan hanya dengan berikut ini
import 'core-js/es/array';
jika Anda lebih suka untuk tidak memasukkan seluruh core-js
sumber
import 'core-js/...
jadi apa yang harus saya ubah dan di mana? Menggunakan VueJS 2Saya menemukan jawaban yang mungkin. Anda memiliki core-js versi 3.0, dan versi ini tidak memiliki folder terpisah untuk ES6 dan ES7 ; itulah mengapa aplikasi tidak dapat menemukan jalur yang benar.
Untuk mengatasi kesalahan ini, Anda dapat menurunkan versi core-js ke 2.5.7. Versi ini menghasilkan struktur katalog yang benar, dengan folder ES6 dan ES7 terpisah .
Untuk menurunkan versi, cukup jalankan:
Dalam kasus saya, dengan Angular, ini berfungsi dengan baik.
sumber
Ubah semua "es6" dan "es7" menjadi "es" di polyfills.ts dan polyfills.ts Anda (Opsional).
import 'core-js/es6/symbol';
import 'core-js/es/symbol';
sumber
Setelah Bermigrasi ke Angular8 ,
core-js/es6
ataucore-js/es7
Tidak akan berfungsi.Anda hanya perlu mengganti impor
core-js/es/
Misalnya.
untuk
Ini akan bekerja dengan baik.
sumber
/es6
jalur github.com/angular/angular/blob/master/integration/… Ada ide mengapa mereka melakukan itu?Tentu, saya memiliki masalah serupa dan sederhana
melakukan trik untuk saya.
Namun, penggunaan @ babel / polyfill sudah tidak digunakan lagi (menurut komentar ini ) jadi hanya coba ini jika Anda merasa telah menginstal paket yang lebih lama atau jika semuanya gagal.
sumber
@babel/polyfill
sudah tidak digunakan lagi.Ubah saja "target": "es2015" menjadi "target": "es5" di tsconfig.json Anda.
Bekerja untuk saya dengan Angular 8.2.XX
Diuji di IE11 dan Edge
sumber
Akhirnya memiliki file bernama polyfill.js di projectpath \ src \ polyfill.js File itu hanya berisi baris ini: import 'core-js'; polyfills ini tidak hanya es-6, tetapi merupakan cara yang benar untuk menggunakan core-js sejak versi 3.0.0.
Saya menambahkan polyfill.js ke atribut entri file webpack seperti ini:
entry: ['./src/main.scss', './src/polyfill.js', './src/main.jsx']
Bekerja dengan sempurna.
Saya juga menemukan beberapa informasi lebih lanjut di sini: https://github.com/zloirock/core-js/issues/184
Penulis perpustakaan ( zloirock ) mengklaim:
(Kutipan https://github.com/zloirock/core-js/issues/184 dari zloirock)
Jadi saya pikir import 'core-js'; baik-baik saja.
sumber
Jika Anda menggunakan
@babel/preset-env
danuseBuiltIns
, maka Anda hanya perlu menambahkancorejs: 3
di samping opsi useBuiltIns, untuk menentukan versi mana yang akan digunakan, defaultnya adalahcorejs: 2
.Untuk detail lebih lanjut lihat: https://github.com/zloirock/core-js/blob/master/docs/2019-03-19-core-js-3-babel-and-a-look-into-the-future .md # babelpreset-env
sumber
Ubah semua "es6" dan "es7" menjadi "es" di polyfills.ts dan polyfills.ts Anda
sumber