node_modules안에 있는 모듈 일부를 babeling 하려는데 안되는 현상
("@babel/core": "^7.7.5")
해당 모듈들이 es5가 아니라서 babeling하려고함
npm install -g are-you-es5
are-you-es5 check ./
❌ lodash-es is not ES5
❌ y-prosemirror is not ES5
❌ y-websocket is not ES5
❌ yjs is not ES5
.babelrc
{
"presets": [["@babel/preset-env", { "useBuiltIns": "entry", "corejs": "corejs@2" }], "@babel/preset-react"],
"plugins": [
"@babel/plugin-proposal-class-properties",
"@babel/plugin-syntax-dynamic-import",
"dynamic-import-node",
"jsx-control-statements",
[
"module-resolver",
{
"root": ["./"],
"extensions": [".js", ".jsx"],
"alias": {
"src": "./src",
"static": "./static",
"css": "./static/css"
}
}
]
]
}
webpack.config
const modules = {
rules: [
{
test: /\.(jsx|js)$/,
loader: 'babel-loader',
exclude: /node_modules\/(?![yjs|y\-prosemirror|y\-websocket|lib0|isomorphic.js])/,
},
...
여기서 webpack.config에있는 exclude가 먹지 않는 상황
webpack에 options객체가 없으면, baberc를 읽으면서 위의 exclude도 무시하는거같다.
아래와같이 options에 .babelrc파일을 지정해줌
const modules = {
rules: [
{
test: /\.(jsx|js)$/,
loader: 'babel-loader',
exclude: /node_modules\/(?![yjs|y\-prosemirror|y\-websocket|lib0|isomorphic.js])/,
options: {
configFile: path.resolve(BASE_PATH, '.babelrc')
}
좋은 글 읽고 갑니다.