mirror of
https://github.com/phuoc-ng/csslayout.git
synced 2025-08-06 06:07:33 +02:00
Use webpack
This commit is contained in:
6
.babelrc
Normal file
6
.babelrc
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"presets": [
|
||||
"@babel/preset-env",
|
||||
"@babel/preset-react"
|
||||
]
|
||||
}
|
4
.gitignore
vendored
4
.gitignore
vendored
@@ -1,3 +1,5 @@
|
||||
.cache
|
||||
dist
|
||||
node_modules
|
||||
node_modules
|
||||
public/bundle.js
|
||||
public/bundle.js.map
|
7
client/CoverLoader.jsx
Normal file
7
client/CoverLoader.jsx
Normal file
@@ -0,0 +1,7 @@
|
||||
import loadable from '@loadable/component';
|
||||
|
||||
import slug from './helpers/slug';
|
||||
|
||||
const CoverLoader = loadable(props => import(`./layouts/${slug(props.pattern)}/Cover`));
|
||||
|
||||
export default CoverLoader;
|
@@ -1,6 +1,7 @@
|
||||
import React from 'react';
|
||||
import { Link } from 'react-router-dom';
|
||||
|
||||
//import CoverLoader from './CoverLoader';
|
||||
import BadgeCover from './layouts/badge/Cover';
|
||||
import BreadcrumbCover from './layouts/breadcrumb/Cover';
|
||||
import ButtonWithIconCover from './layouts/button-with-icon/Cover';
|
||||
@@ -116,7 +117,7 @@ const Home = () => {
|
||||
<div className="flex flex-wrap items-start pa4">
|
||||
<div className="pa1 w-20">
|
||||
<Link to="/badge" className="link flex flex-column items-center justify-center tc hover-bg-black-10 br2 pa3">
|
||||
<BadgeCover />
|
||||
<BadgeCover pattern="Badge" />
|
||||
<h4 className="f5 mv0 pt3">Badge</h4>
|
||||
</Link>
|
||||
</div>
|
||||
|
2
client/helpers/slug.js
Normal file
2
client/helpers/slug.js
Normal file
@@ -0,0 +1,2 @@
|
||||
const slug = item => item.toLowerCase().split(' ').join('-');
|
||||
export default slug;
|
4245
package-lock.json
generated
4245
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
21
package.json
21
package.json
@@ -1,13 +1,15 @@
|
||||
{
|
||||
"name": "csslayout",
|
||||
"scripts": {
|
||||
"dev": "parcel client/index.html --out-dir dist",
|
||||
"build": "parcel build client/index.html --out-dir dist",
|
||||
"sitemap": "cp robots.txt dist && node bin/sitemap && cp sitemap.xml dist",
|
||||
"prebuild": "rm -rf dist/*",
|
||||
"dev": "webpack --mode=development",
|
||||
"dev-server": "webpack-dev-server",
|
||||
"build": "webpack --mode=production",
|
||||
"sitemap": "cp robots.txt public && node bin/sitemap && cp sitemap.xml public",
|
||||
"prebuild": "rm -rf public/*",
|
||||
"postbuild": "npm run sitemap && react-snap"
|
||||
},
|
||||
"dependencies": {
|
||||
"@loadable/component": "^5.10.3",
|
||||
"highlight.js": "^9.16.2",
|
||||
"react": "^16.12.0",
|
||||
"react-dom": "^16.12.0",
|
||||
@@ -15,7 +17,16 @@
|
||||
"react-snap": "^1.23.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"parcel-bundler": "^1.12.4"
|
||||
"@babel/core": "^7.7.4",
|
||||
"@babel/preset-env": "^7.7.4",
|
||||
"@babel/preset-react": "^7.7.4",
|
||||
"babel-loader": "^8.0.6",
|
||||
"css-loader": "^3.2.0",
|
||||
"parcel-bundler": "^1.12.4",
|
||||
"style-loader": "^1.0.0",
|
||||
"webpack": "^4.41.2",
|
||||
"webpack-cli": "^3.3.10",
|
||||
"webpack-dev-server": "^3.9.0"
|
||||
},
|
||||
"reactSnap": {
|
||||
"source": "dist",
|
||||
|
@@ -7,7 +7,7 @@
|
||||
</head>
|
||||
<body class="avenir w-100">
|
||||
<div id="root"></div>
|
||||
<script src="./index.jsx"></script>
|
||||
<script src="./bundle.js"></script>
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-139616701-3"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
29
webpack.config.js
Normal file
29
webpack.config.js
Normal file
@@ -0,0 +1,29 @@
|
||||
const path = require('path');
|
||||
|
||||
module.exports = {
|
||||
entry: './client/index.jsx',
|
||||
output: {
|
||||
path: path.join(__dirname, 'public'),
|
||||
filename: 'bundle.js',
|
||||
},
|
||||
module: {
|
||||
rules: [
|
||||
{
|
||||
test: /\.jsx?$/,
|
||||
exclude: /node_modules/,
|
||||
loader: 'babel-loader',
|
||||
},
|
||||
{
|
||||
test: /\.css$/,
|
||||
use: ['style-loader', 'css-loader'],
|
||||
},
|
||||
],
|
||||
},
|
||||
resolve: {
|
||||
extensions: ['.js', '.jsx'],
|
||||
},
|
||||
devtool: 'cheap-module-eavl-source-map',
|
||||
devServer: {
|
||||
contentBase: path.join(__dirname, 'public')
|
||||
},
|
||||
};
|
Reference in New Issue
Block a user