babel编译ES6报错Cannot find module ‘core-js/modules/web.dom-collections.iterator.js‘

解决方案:

降低core-js的版本即可

先删掉node_modules下的core-js文件夹,并删除package-lock.json文件,这文件会锁定版本,导致安装无效。并删掉package.jsoncore-js的版本(如果有的话)。

// 这个安装完,会装@2的最新版本 "core-js": "^2.6.12"
npm install core-js@2
// 降版本之后package.json里core-js的版本是这个:

"dependencies": {
   "core-js": "^2.6.12"
},

如果你的babel配置文件babel.config.json 配置了corejs版本,装完要改为package.json里的版本号,再重新编译你的代码:
// babel.config.json 配置文件的内容是官网来的,详见:https://www.babeljs.cn/docs/usage
{
    "presets": [
        [
            "@babel/env",
            {
                "targets": {
                    "edge": "17",
                    "firefox": "60",
                    "chrome": "67",
                    "safari": "11.1"
                },
                "useBuiltIns": "usage",
                "corejs": "2.6.12"
            }
        ]
    ]
}

我这报的这个错,是因为我编译了下面这段es6代码:
// a.js

function aa(){
    console.log('aaaaaa')
}
const bb = 111;

export const cc = 222; // 单个导出 ,导入的写法: import { cc } from './a'
export { aa }
export default bb

// b.js

import { aa, cc } from "./a"
import b from "./a"
// 上面这俩import 可以合并成一条 import b,{ aa, cc } from "./a"  当然写俩也不会报错
console.log(aa(),cc)
console.log(b)
// package.json的scripts对象里 配置build 快捷命令
"scripts": {
   "build": "npx babel src --out-dir dist"
},
// 执行这条命令,会编译src文件夹并在src同级目录生成一个dist文件夹,里面是编译后的a.js  b.js ,打开编译后的b.js ,

npm run build

// 然后 鼠标右键 选 Run Code 菜单 (vscode里要先安装Code Runner 这个扩展,这玩意好用的很,直接执行代码,vscode控制台-输出 里可看代码的运行结果)运行正常,编译成功!

目前官网最新版是3.6.5的版本,编译后,引用的core-js包路径是这样的 require("core-js/modules/web.dom-collections.iterator.js") ,关键是我node_module有这个文件,但就是报找不到这个包

降版本之后,编译完的代码里引用的core-js包路径就是这样的 require("core-js/modules/web.dom.iterable.js")

你可能感兴趣的:(babel)