Eu tenho um problema com meu processo de construção em relação ao meu aplicativo React.
Sempre recebo o seguinte erro:
Módulo não encontrado: Erro: Não é possível resolver 'core-js / es6'
se eu usar isso em um polyfill.js:
importar 'core-js / es6';
Esse é o meu 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"
}
}
Alguém pode ajudar aqui?
npm
build
yarnpkg
package.json
Gutelaunetyp
fonte
fonte
Respostas:
As importações mudaram para core-js versão 3.0.1 - por exemplo
import 'core-js/es6/array';
eimport 'core-js/es7/array';
agora pode ser fornecido simplesmente pelo seguinte
import 'core-js/es/array';
se você preferir não trazer todo o core-js
fonte
import 'core-js/...
então o que devo alterar e onde? Usando VueJS 2Encontrei uma resposta possível. Você tem o core-js versão 3.0 e esta versão não tem pastas separadas para ES6 e ES7 ; é por isso que o aplicativo não consegue encontrar os caminhos corretos.
Para resolver esse erro, você pode fazer o downgrade da versão core-js para 2.5.7. Esta versão produz uma estrutura de catálogos correta, com pastas ES6 e ES7 separadas .
Para fazer o downgrade da versão, basta executar:
No meu caso, com o Angular, funciona bem.
fonte
Altere todos os "es6" e "es7" para "es" em seus polyfills.ts e polyfills.ts (opcional).
import 'core-js/es6/symbol';
import 'core-js/es/symbol';
fonte
Depois de migrado para Angular8 ,
core-js/es6
oucore-js/es7
não funcionará.Você tem que simplesmente substituir import
core-js/es/
Por ex.
para
Isso funcionará corretamente.
fonte
/es6
caminhos github.com/angular/angular/blob/master/integration/… Alguma ideia de por que eles estão fazendo isso?Claro, tive um problema semelhante e um simples
fez o truque para mim.
No entanto, o uso de @ babel / polyfill está obsoleto (de acordo com este comentário ), então apenas tente fazer isso se você achar que tem pacotes mais antigos instalados ou se tudo mais falhar.
fonte
@babel/polyfill
está obsoleto.Basta alterar "target": "es2015" para "target": "es5" no seu tsconfig.json.
Trabalhe para mim com Angular 8.2.XX
Testado no IE11 e Edge
fonte
Acabou tendo um arquivo chamado polyfill.js em projectpath \ src \ polyfill.js Esse arquivo contém apenas esta linha: import 'core-js'; este polyfills não apenas es-6, mas é a maneira correta de usar core-js desde a versão 3.0.0.
Eu adicionei o polyfill.js ao meu atributo de entrada do arquivo webpack assim:
entry: ['./src/main.scss', './src/polyfill.js', './src/main.jsx']
Funciona perfeitamente.
Também encontrei mais algumas informações aqui: https://github.com/zloirock/core-js/issues/184
O autor da biblioteca ( zloirock ) afirma:
(Citação https://github.com/zloirock/core-js/issues/184 de zloirock)
Então eu acho que import 'core-js'; está muito bem.
fonte
Se você usar
@babel/preset-env
euseBuiltIns
, basta adicionarcorejs: 3
ao lado da opção useBuiltIns, para especificar qual versão usar, o padrão écorejs: 2
.Para obter mais detalhes, 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
fonte
Altere todos os "es6" e "es7" para "es" em seus polyfills.ts e polyfills.ts
fonte