Use webpack for react-native
Webpack have fully support for CommonJS, and provides much more features.
You can skip this README if you just want things work. Read sample and use the webpack.config.js and read package.json for dependencies.
We just need to do these:
Base configure
npm install webpack json-loader clean-webpack-plugin react-native-webpack --savenpm install webpack-dev-server --save-dev
global__PLATFORM__ = processenvRN_PLATFORM || 'ios'; moduleexports = context: __dirname entry: index: 'react-native-webpack/clients/polyfills.js' `./index..js` output: path: assetsPath filename: `[name]..bundle` chunkFilename: '[name].chunk.js' publicPath: '/' devServer: port: 8081 quiet: false noInfo: true lazy: true filename: `[name]..bundle` watchOptions: aggregateTimeout: 300 poll: 1000 publicPath: '/' stats: colors: true ;
Configure babel
Install dependencies:
npm install babel-loader babel-presets-react-native babel-plugin-syntax-trailing-function-commas babel-plugin-transform-flow-strip-types --save
You can configure babel-loader via query like:
const babelLoader = `babel?` moduleexports = //...other configures module: loaders: // Enable babel for your code and libraries. test: /\.jsx?$/ loaders: babelLoader test: /\.json$/ loader: 'json-loader' ;
Support for @providesModule for specified modules
moduleexports = //...other configures resolve: modulesDirectories: 'src' 'node_modules' alias: extensions: '' `..js` '.js'
Support for assets require (require('./xxx.png')
moduleexports = //...other configures plugins: ;
TODO:
- Bundle command for android/ios
- Support windows.
- Code Splitting(require.ensure) support