$ npm run debug src={no} css-modules=false
[webpack.config.js]
const path = require('path');
module.exports = (env) => {
return {
mode: "none",
entry: path.resolve(`src/${env.src}/index.js`),
output: {
path: path.resolve('public'),
filename: 'bundle.js',
assetModuleFilename: 'assets/images/[hash][ext]'
},
module: {
rules:[{
test: /\.(sa|sc|c)ss$/i,
use:[
'style-loader',
{ loader: 'css-loader', options: { modules: env['css-modules'] !== 'false' } },
'sass-loader'
]
}, {
test: /\.(png|gif|jpe?g|svg|ico|tiff?|bmp)$/i,
type: 'asset/resource'
}, {
test: /\.js$/i,
exclude: /node_modules/,
loader: 'babel-loader'
}]
},
devtool: "eval-source-map",
devServer: {
contentBase: path.resolve('public'),
watchContentBase: true,
host: "0.0.0.0",
port: 9999,
inline: true,
liveReload: true,
hot: false,
compress: true,
historyApiFallback: true
}
};
}
import React from 'react';
export default function App() {
const h1Styles = {
width: 200,
height: 500,
padding: 5,
color: 'white',
backgroundColor: '#ab47bc'
}
return (
<div id='App'>
<h1 style={ h1Styles }>Inline Styling</h1>
</div>
);
};
$ npm run debug src={no} css-modules=false
import React from 'react';
import './assets/css/App.css';
export default function App() {
return (
<div id='App'>
<h1 className="Header">{'Normal CSS( css-loader options{ modules: false})'}</h1>
</div>
);
};
$ npm run debug src={no}
:global(.Header)
import React from 'react';
import './assets/css/App.css';
export default function App() {
return (
<div id='App'>
<h1 className="Header">{'Normal CSS( css-loader options{ modules: false})'}</h1>
</div>
);
};
[App.js]
import React from 'react';
import './assets/css/App.css';
import Banner01 from './Banner01';
import Banner02 from './Banner02';
export default function App() {
return (
<div id='App'>
<Banner01 />
<Banner02 />
</div>
);
};
[Banner01.js]
import React from 'react';
import styles from './assets/css/Banner01.css';
export default function Banner01(){
return (
<h1 className={ styles.Header }>Hello React!!</h1>
);
}
[Banner02.js]
import React from 'react';
import styles from './assets/css/Banner02.css';
export default function Banner02(){
return (
<h1 className={ styles.Header }>Hello React!!</h1>
);
}
[결과]