Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade React Native to webpack 2 config #1097

Merged
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 15 additions & 11 deletions app/react-native/src/server/config/defaults/webpack.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,26 @@ import { includePaths } from '../utils';

// Add a default custom config which is similar to what React Create App does.
module.exports = storybookBaseConfig => {
const newConfig = storybookBaseConfig;
const newConfig = { ...storybookBaseConfig };
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

actually, can you try just exporting the app/react version of this file directly? It looks like the configs could probably be shared directly.

this is outside the scope of your PR but I see a lot of shared server files for react-native and react as well. we could combine them as much as possible to prevent fixing problems in one while forgetting about the other @ndelangen

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When we at some point add a third UI library, this will be refactored.


newConfig.module.loaders = [
...newConfig.module.loaders,
{
test: /\.css?$/,
include: includePaths,
loaders: [
use: [
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes! thanks for upgrading this to webpack 2 format!

require.resolve('style-loader'),
require.resolve('css-loader'),
require.resolve('postcss-loader'),
{
loader: require.resolve('postcss-loader'),
options: {
plugins: () => [
autoprefixer({
browsers: ['>1%', 'last 4 versions', 'Firefox ESR', 'not ie < 9'],
}),
],
},
},
],
},
{
Expand All @@ -39,16 +49,10 @@ module.exports = storybookBaseConfig => {
},
];

newConfig.postcss = () => [
autoprefixer({
browsers: ['>1%', 'last 4 versions', 'Firefox ESR', 'not ie < 9'],
}),
];

newConfig.resolve = {
// These are the reasonable defaults supported by the Node ecosystem.
extensions: ['.js', '.json', ''],
...newConfig.resolve,
alias: {
...((newConfig.resolve && newConfig.resolve.alias) || {}),
// This is to support NPM2
'babel-runtime/regenerator': require.resolve('babel-runtime/regenerator'),
},
Expand Down