import React from 'react'; import ReactDOM from 'react-dom'; //External SASS & CSS import './scss/style.scss'; import './css/style.css'; //The styling is a object const a = { color: 'red', fontSize: '18px' }; //Component A class A extends React.Component { render() { return ( <div className="main"> I am <span>Apple</span>, and you are <B /> </div> ) } }; //Component B class B extends React.Component { render() { return ( <span style={a}> the Banana </span> ) } }; //Program is inited here ReactDOM.render(<A />, document.getElementById('root')); //# sourceMappingURL=main.js.map
这儿用了最简单的ReactDOM模块,加上CSS,SASS Loader,也用了inline-css的js object.
以下是index.html:
<!DOCTYPE html> <html> <head> </head> <body> <div id="root"></div> <script src="./dist/main.js"></script> </body> </html>
Webpack.config.js:
const path = require('path'); module.exports = { entry: './src/index.js', output: { path: path.resolve(__dirname, 'dist'), filename: 'main.js' }, module: { rules: [ { test: /\.js$/, exclude: /node_modules/, use: { loader: "babel-loader" } }, { test:/\.(s*)css$/, use:['style-loader','css-loader', 'sass-loader'] } ] }, stats: { colors: true }, devtool: 'source-map' };
package.json:
{ "name": "reduks", "version": "1.0.0", "description": "", "main": "app.js", "dependencies": { "express": "^4.16.4", "react": "^16.8.6", "react-dom": "^16.8.6" }, "devDependencies": { "@babel/core": "^7.4.4", "@babel/preset-env": "^7.4.4", "@babel/preset-react": "^7.0.0", "babel-loader": "^8.0.5", "css-loader": "^2.1.1", "node-sass": "^4.12.0", "react-redux": "^7.0.3", "redux": "^4.0.1", "sass-loader": "^7.1.0", "style-loader": "^0.23.1", "webpack": "^4.30.0", "webpack-cli": "^3.3.1" }, "scripts": { "start": "webpack --mode development", "build": "webpack --mode production" }, "author": "", "license": "ISC" }
Node:server.js (Listening to port 80 …)
//Load Libraries const express = require('express') const app = express(); const path = require('path'); //Index.html app.get('/', (req, res) => { res.sendFile(path.join(__dirname + '/index.html')); }); //Main.js app.get('/dist/main.js', (req, res) => { res.sendFile(path.join(__dirname + '/dist/main.js')); }); app.listen(80, () => { console.log('Example app listening on port 80!') });