Tengo un problema con mi proceso de compilación en relación con mi aplicación React.
Siempre obtengo el siguiente error:
Módulo no encontrado: Error: No se puede resolver 'core-js / es6'
si uso esto en un polyfill.js:
importar 'core-js / es6';
Ese es mi package.json:
{
"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"
}
}
¿Alguien puede ayudar aquí?
npm
build
yarnpkg
package.json
Gutelaunetyp
fuente
fuente
Respuestas:
Las importaciones han cambiado para core-js versión 3.0.1, por ejemplo
import 'core-js/es6/array';
yimport 'core-js/es7/array';
ahora se puede proporcionar simplemente con lo siguiente
import 'core-js/es/array';
si prefiere no traer la totalidad de core-js
fuente
import 'core-js/...
entonces, ¿qué debo cambiar y dónde? Usando VueJS 2Encontré una posible respuesta. Tiene core-js versión 3.0 y esta versión no tiene carpetas separadas para ES6 y ES7 ; por eso la aplicación no puede encontrar las rutas correctas.
Para resolver este error, puede degradar la versión core-js a 2.5.7. Esta versión produce una estructura de catálogos correcta, con carpetas ES6 y ES7 separadas .
Para degradar la versión, simplemente ejecute:
En mi caso, con Angular, esto funciona bien.
fuente
Cambie todo "es6" y "es7" por "es" en su polyfills.ts y polyfills.ts (opcional).
import 'core-js/es6/symbol';
import 'core-js/es/symbol';
fuente
Después de migrar a Angular8 ,
core-js/es6
ocore-js/es7
no funcionará.Simplemente tiene que reemplazar la importación
core-js/es/
Por ej.
a
Esto funcionará correctamente.
fuente
/es6
rutas github.com/angular/angular/blob/master/integration/ ... ¿ Alguna idea de por qué están haciendo eso?Claro, tuve un problema similar y un simple
hizo el truco para mí.
Sin embargo, el uso de @ babel / polyfill está en desuso (según este comentario ), así que solo intente esto si cree que tiene instalados paquetes más antiguos o si todo lo demás falla.
fuente
@babel/polyfill
está obsoleto.Simplemente cambie "target": "es2015" a "target": "es5" en su tsconfig.json.
Trabaja para mí con Angular 8.2.XX
Probado en IE11 y Edge
fuente
Terminó para tener un archivo llamado polyfill.js en projectpath \ src \ polyfill.js Ese archivo solo contiene esta línea: import 'core-js'; este polyfills no solo es-6, sino que es la forma correcta de usar core-js desde la versión 3.0.0.
He añadido las polyfill.js a mi webpack-archivo de atributos entrada como esta:
entry: ['./src/main.scss', './src/polyfill.js', './src/main.jsx']
Funciona perfectamente.
También encontré más información aquí: https://github.com/zloirock/core-js/issues/184
El autor de la biblioteca ( zloirock ) afirma:
(Cita https://github.com/zloirock/core-js/issues/184 de zloirock)
Así que creo que importa 'core-js'; está bien.
fuente
Si usa
@babel/preset-env
yuseBuiltIns
, solo tiene que agregarcorejs: 3
al lado de la opción useBuiltIns, para especificar qué versión usar, el valor predeterminado escorejs: 2
.Para obtener más detalles, consulte: 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
fuente
Cambie todo "es6" y "es7" por "es" en su polyfills.ts y polyfills.ts
fuente