node_modules안에 있는 모듈 babeling 안될 때

brody·2020년 2월 7일
2

웨앱

목록 보기
2/3

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')
            }
profile
일하며 하는 기록

1개의 댓글

comment-user-thumbnail
2020년 2월 7일

좋은 글 읽고 갑니다.

답글 달기