|
@@ -1,81 +1,47 @@
|
|
|
const path = require('path')
|
|
|
const TsconfigPathsPlugin = require('tsconfig-paths-webpack-plugin');
|
|
|
module.exports = ({ config }) => {
|
|
|
+ // Styles (replace the provided rule):
|
|
|
+ const originalCssRuleIndex = config.module.rules.findIndex(rule => rule.test.source.includes('.css'));
|
|
|
+ config.module.rules[originalCssRuleIndex] = {
|
|
|
+ test: /\.(sa|sc|c)ss$/i,
|
|
|
+ use: [
|
|
|
+ // Creates `style` nodes from JS strings
|
|
|
+ 'style-loader',
|
|
|
+ // Translates CSS into CommonJS
|
|
|
+ 'css-loader',
|
|
|
+ // Compiles Sass to CSS
|
|
|
+ 'sass-loader'
|
|
|
+ ]
|
|
|
+ };
|
|
|
|
|
|
-// Post CSS loader for sources:
|
|
|
-config.module.rules.push({
|
|
|
- test: /\.css$/,
|
|
|
- include: path.resolve(__dirname, '../packages'),
|
|
|
- exclude: /(node_modules)/,
|
|
|
- use: [
|
|
|
- {
|
|
|
- loader: require.resolve('postcss-loader'),
|
|
|
- options: {
|
|
|
- // Set postcss.config.js config path && ctx
|
|
|
- config: {
|
|
|
- path: '../postcss.config.js',
|
|
|
- },
|
|
|
- ident: 'postcss',
|
|
|
- plugins: () => [
|
|
|
- require('precss'),
|
|
|
- require('autoprefixer'),
|
|
|
- require('postcss-simple-vars'),
|
|
|
- require('postcss-nested'),
|
|
|
- require('postcss-import'),
|
|
|
- require('postcss-clean')(),
|
|
|
- require('postcss-flexbugs-fixes')
|
|
|
- ]
|
|
|
- }
|
|
|
- }
|
|
|
- ]
|
|
|
-});
|
|
|
+ // TypeScript loader (via Babel to match polkadot/apps)
|
|
|
+ config.module.rules.push({
|
|
|
+ test: /\.(js|ts|tsx)$/,
|
|
|
+ exclude: /(node_modules)/,
|
|
|
+ use: [
|
|
|
+ {
|
|
|
+ loader: require.resolve('babel-loader'),
|
|
|
+ options: require('@polkadot/dev/config/babel')
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ });
|
|
|
+ config.resolve.extensions.push('.js', '.ts', '.tsx');
|
|
|
|
|
|
-// TypeScript loader (via Babel to match polkadot/apps)
|
|
|
-config.module.rules.push({
|
|
|
- test: /\.(js|ts|tsx)$/,
|
|
|
- exclude: /(node_modules)/,
|
|
|
- use: [
|
|
|
- {
|
|
|
- loader: require.resolve('babel-loader'),
|
|
|
- options: require('@polkadot/dev/config/babel')
|
|
|
- },
|
|
|
- ],
|
|
|
-});
|
|
|
-config.resolve.extensions.push('.js', '.ts', '.tsx');
|
|
|
+ // TSConfig, uses the same file as packages
|
|
|
+ config.resolve.plugins = config.resolve.plugins || [];
|
|
|
+ config.resolve.plugins.push(
|
|
|
+ new TsconfigPathsPlugin({
|
|
|
+ configFile: path.resolve(__dirname, '../tsconfig.json'),
|
|
|
+ })
|
|
|
+ );
|
|
|
|
|
|
-// TSConfig, uses the same file as packages
|
|
|
-config.resolve.plugins = config.resolve.plugins || [];
|
|
|
-config.resolve.plugins.push(
|
|
|
- new TsconfigPathsPlugin({
|
|
|
- configFile: path.resolve(__dirname, '../tsconfig.json'),
|
|
|
- })
|
|
|
-);
|
|
|
+ // Stories parser
|
|
|
+ config.module.rules.push({
|
|
|
+ test: /\.stories\.tsx?$/,
|
|
|
+ loaders: [require.resolve('@storybook/source-loader')],
|
|
|
+ enforce: 'pre',
|
|
|
+ });
|
|
|
|
|
|
-// Stories parser
|
|
|
-config.module.rules.push({
|
|
|
- test: /\.stories\.tsx?$/,
|
|
|
- loaders: [require.resolve('@storybook/source-loader')],
|
|
|
- enforce: 'pre',
|
|
|
-});
|
|
|
-
|
|
|
-// CSS preprocessors
|
|
|
-config.module.rules.push(
|
|
|
- {
|
|
|
- test: /\.s[ac]ss$/i,
|
|
|
- use: [
|
|
|
- // Creates `style` nodes from JS strings
|
|
|
- 'style-loader',
|
|
|
- // Translates CSS into CommonJS
|
|
|
- 'css-loader',
|
|
|
- // Compiles Sass to CSS
|
|
|
- 'sass-loader',
|
|
|
- ],
|
|
|
- },
|
|
|
- {
|
|
|
- test: /\.less$/,
|
|
|
- loaders: [ 'style-loader', 'css-loader', 'less-loader' ]
|
|
|
- }
|
|
|
-);
|
|
|
-
|
|
|
-return config;
|
|
|
+ return config;
|
|
|
};
|