haul icon indicating copy to clipboard operation
haul copied to clipboard

Some libraries from node_modules (or every) do not compiled by babel

Open Natteke opened this issue 4 years ago • 3 comments

Environment

"@haul-bundler/babel-preset-react-native": "^0.16.0", "@haul-bundler/preset-0.60": "^0.17.0", "@haul-bundler/cli": "^0.17.0", "@haul-bundler/core": "^0.17.0", "react": "16.9.0", "react-native": "0.61.5",

Description

Looks like haul babel presset ignores node_modules, but some libraries which need to be compiled,like rn-viewpager.

Bundle crashes on class static property, which works fine if i write that right in my App.tsx. image

Maybe it is a not an issue, cause i understand that not every node_module should be compiled, but what should i do in this case? (except choosing another lib)

To reproduce

  1. react-native init
  2. yarn add haul -> init -> start --empty project works fine--
  3. yarn add rn-viewpager
  4. add minimal code
import { IndicatorViewPager, PagerDotIndicator } from 'rn-viewpager';

const App = () => (
    <>
        <IndicatorViewPager
            style={{ height: Dimensions.get('window').height }}
            indicator={(
                <PagerDotIndicator
                    pageCount={3}
                />
            )}
        >
            <Text>TEST</Text>
            <Text>TEST</Text>
            <Text>TEST</Text>
        </IndicatorViewPager>
    </>
);

Natteke avatar Feb 28 '20 07:02 Natteke

It also solves with custom babel/ts config from recipe.

export default makeConfig({
  bundles: {
    index: {
      entry: withPolyfills('./index.ts'),
      transform({ config }) {
        config.module.rules = [
          {
            test: /\.tsx?$/,
            exclude: '/node_modules/',
            use: [
              {
                loader: 'babel-loader',
              },
              {
                loader: 'ts-loader',
              }
            ]
          },
          ...config.module.rules,
        ];
      },
    },
  },
});

Natteke avatar Feb 28 '20 09:02 Natteke

looks like it's happening since issue 220.

if i console.log the passed config in transform function, it does not looks like node_modules were excluded from babel, but behavior suggests otherwise.

I think this could be highlighted in the dock.

Natteke avatar Feb 28 '20 09:02 Natteke

@Natteke not every node_module package is excluded, some are transpiled but the great majority is not.

zamotany avatar Feb 28 '20 09:02 zamotany