Auto commit for build : 71
commit by: hassani ayoub <hassani.ayoub@gmail.com> with message : upgrade some dependencies
|
@ -0,0 +1,74 @@
|
|||
# @d3v4pp/cli : devapp
|
||||
|
||||
[](https://cvs.d3v4pp.fr/D3V4PP/cli.git)
|
||||
[](https://www.npmjs.com/package/@d3v4pp/cli)
|
||||
|
||||
|
||||
|
||||
|
||||
is a command line cli that will run build and init SweetApps
|
||||
with `devapp` command line you can create, build, start(dev mode) or test your app
|
||||
|
||||
### Basic usage:
|
||||
To install the command line cli run :
|
||||
~~~
|
||||
npm install -g @d3v4pp/cli
|
||||
~~~
|
||||
|
||||
Start your application from default template
|
||||
|
||||
~~~
|
||||
devapp init Myapp
|
||||
cd Myapp
|
||||
devapp start
|
||||
~~~
|
||||
|
||||
Build your app
|
||||
~~~
|
||||
devapp build
|
||||
~~~
|
||||
|
||||
|
||||
## start params
|
||||
You can change the port and public path you want, by calling `devapp start -p 9090 -public "/v1"
|
||||
|
||||
|param| description |
|
||||
|:-----:|:-----:|
|
||||
|-p, --port | the port you want to start on |
|
||||
|-public, --public| the port you want to start on |
|
||||
|
||||
|
||||
## build params
|
||||
You can change the public path you want, by calling `devapp build --public "/v1"
|
||||
|
||||
|param| description |
|
||||
|:-----:|:-----:|
|
||||
|-public, --public| the port you want to start on |
|
||||
|
||||
|
||||
|
||||
|
||||
## Commun problems
|
||||
### WINDOWS
|
||||
The execution strategie dosent allow remoteSigned execution need to allow it
|
||||
```
|
||||
set ExecutionStrqtegie ....
|
||||
```
|
||||
|
||||
### MACOSX:
|
||||
if your using a mac make sure xcode is installed run
|
||||
~~~sh
|
||||
$ gcc -v
|
||||
#if it propose to you to install xcode do it
|
||||
~~~
|
||||
|
||||
### linux
|
||||
|
||||
```
|
||||
No problem at all
|
||||
```
|
||||
|
||||
|
||||
# release notes
|
||||
## version 0.0.2:
|
||||
* corrige le bug dans la commande `devapp build`
|
|
@ -0,0 +1,78 @@
|
|||
{
|
||||
"name": "@d3v4pp/cli",
|
||||
"version": "0.0.2",
|
||||
"description": "Client that allows to develop react applications faster",
|
||||
"main": "index.js",
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
},
|
||||
"bin": {
|
||||
"devapp": "index.js"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://cvs.d3v4pp.fr/D3V4PP/cli.git"
|
||||
},
|
||||
"files": [
|
||||
"template",
|
||||
"index.js",
|
||||
"package.json",
|
||||
"README.md"
|
||||
],
|
||||
"keywords": [
|
||||
"fast",
|
||||
"easy",
|
||||
"best practice",
|
||||
"react app",
|
||||
"runner",
|
||||
"react",
|
||||
"react-dom",
|
||||
"app"
|
||||
],
|
||||
"author": {
|
||||
"name": "Ayoub Hassani <D3v4pp>",
|
||||
"email": "ayoub@d3v4pp.fr",
|
||||
"url": "https://d3v4pp.fr/"
|
||||
},
|
||||
"funding": "https://paypal.me/SupportTheDoc",
|
||||
"homepage": "https://cvs.d3v4pp.fr/D3V4PP/cli/src/master/README.md",
|
||||
"bugs": {
|
||||
"url": "https://cvs.d3v4pp.fr/D3V4PP/cli/issues",
|
||||
"email": "ayoub@d3v4pp.fr"
|
||||
},
|
||||
"license": "d3v4pp",
|
||||
"peerDependenciesMeta": {
|
||||
"sass": {
|
||||
"optional": true
|
||||
},
|
||||
"fibers": {
|
||||
"optional": true
|
||||
}
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/core": "^7.6.0",
|
||||
"@babel/plugin-proposal-class-properties": "^7.5.5",
|
||||
"@babel/preset-env": "^7.18.6",
|
||||
"@babel/preset-react": "^7.18.6",
|
||||
"@sweetcom/colors": "^0.0.21",
|
||||
"babel-eslint": "^10.1.0",
|
||||
"babel-loader": "^8.0.6",
|
||||
"copy-webpack-plugin": "^11.0.0",
|
||||
"css-loader": "^6.8.1",
|
||||
"eslint-loader": "^4.0.2",
|
||||
"eslint-webpack-plugin": "^3.1.1",
|
||||
"file-loader": "^6.2.0",
|
||||
"html-webpack-plugin": "^5.5.0",
|
||||
"jsdoc": "^4.0.2",
|
||||
"mini-css-extract-plugin": "^2.6.1",
|
||||
"prop-types": "^15.8.1",
|
||||
"react": "^18.2.0",
|
||||
"react-dom": "^18.2.0",
|
||||
"sass": "^1.69.4",
|
||||
"sass-loader": "^13.3.2",
|
||||
"style-loader": "^3.3.3",
|
||||
"webpack": "^5.89.0",
|
||||
"webpack-dev-server": "^4.15.1",
|
||||
"webpack-node-externals": "^3.0.0"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,41 @@
|
|||
{
|
||||
"extends": "plugin:react/recommended",
|
||||
// "parser": "babel-eslint",
|
||||
"rules": {
|
||||
"react/jsx-uses-react": 1,
|
||||
"react/jsx-uses-vars": 1,
|
||||
"react/react-in-jsx-scope": 1,
|
||||
"react/jsx-tag-spacing": [0, {
|
||||
"beforeSelfClosing": "always"
|
||||
}],
|
||||
"curly": [1],
|
||||
"linebreak-style": [1, "unix"],
|
||||
"semi": [1, "always"],
|
||||
"comma-dangle": [0],
|
||||
"no-unused-vars": [1, {
|
||||
"vars": "all",
|
||||
"args": "none",
|
||||
"ignoreRestSiblings": true
|
||||
}],
|
||||
"no-console": [0],
|
||||
"object-curly-spacing": [1, "always"],
|
||||
"keyword-spacing": ["error"]
|
||||
},
|
||||
"parserOptions": {
|
||||
"ecmaFeatures": {
|
||||
"experimentalObjectRestSpread": true,
|
||||
"jsx": true
|
||||
},
|
||||
"sourceType": "module"
|
||||
},
|
||||
"env": {
|
||||
"es6": true,
|
||||
"browser": true,
|
||||
"node": false
|
||||
},
|
||||
"plugins": [
|
||||
"jsx-a11y",
|
||||
"react"
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
# dependencies
|
||||
/node_modules
|
||||
|
||||
|
||||
# production
|
||||
/build
|
||||
|
||||
#IDE
|
||||
.vscode/
|
||||
.project/
|
||||
.idea/
|
|
@ -0,0 +1 @@
|
|||
# @d3v4pp/cli : React template
|
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"name": "{name}",
|
||||
"version": "0.0.1",
|
||||
"description": "sweet react base App",
|
||||
"license": "MIT",
|
||||
"scripts": {
|
||||
"start": "devapp start -t react",
|
||||
"build": "devapp build -t react"
|
||||
},
|
||||
"main": "./src/index.js",
|
||||
"dependencies": {
|
||||
"react": "^18.2.0",
|
||||
"react-dom": "^18.2.0"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
import React, { Component } from 'react';
|
||||
import './App.scss';
|
||||
class App extends Component {
|
||||
render() {
|
||||
return (
|
||||
<div className="App">
|
||||
<header className="App-header">
|
||||
<img src='/assets/logo.png' className="App-logo" alt="logo" />
|
||||
<h1 className="App-title">Welcome to Sweet React Application</h1>
|
||||
</header>
|
||||
<p className="App-intro">
|
||||
HOT MODULE REPLACEMENT is on so :
|
||||
<br/>
|
||||
do not reload the browser
|
||||
<br />
|
||||
Just edit <code>src/App.js</code>
|
||||
<br />
|
||||
and save to reload. </p>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export default App;
|
|
@ -0,0 +1,23 @@
|
|||
.App {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.App-logo {
|
||||
height: 80px;
|
||||
}
|
||||
|
||||
.App-header {
|
||||
background-color: #222;
|
||||
height: 150px;
|
||||
padding: 20px;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.App-title {
|
||||
font-size: 1.5em;
|
||||
}
|
||||
|
||||
.App-intro {
|
||||
font-size: large;
|
||||
}
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
import React from 'react';
|
||||
import ReactDOM from 'react-dom';
|
||||
import App from './App';
|
||||
|
||||
it('renders without crashing', () => {
|
||||
const div = document.createElement('div');
|
||||
ReactDOM.render(<App />, div);
|
||||
});
|
After Width: | Height: | Size: 19 KiB |
After Width: | Height: | Size: 97 KiB |
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"short_name": "name",
|
||||
"name": "name",
|
||||
"icons": [
|
||||
{
|
||||
"src": "/assets/logo.png",
|
||||
"sizes": "256x256",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "/assets/logo.png",
|
||||
"sizes": "64x64 32x32 24x24 16x16",
|
||||
"type": "image/x-icon"
|
||||
}
|
||||
],
|
||||
"start_url": "/",
|
||||
"display": "standalone",
|
||||
"theme_color": "#000000",
|
||||
"background_color": "#ffffff"
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta name="theme-color" content="#000000">
|
||||
<!--
|
||||
manifest.json provides metadata used when your web app is added to the
|
||||
homescreen on Android. See https://developers.google.com/web/fundamentals/engage-and-retain/web-app-manifest/
|
||||
-->
|
||||
<link rel="shortcut icon" href="<%= favicon %>" type="image/x-icon">
|
||||
<link rel="manifest" href="<%= manifest %>">
|
||||
|
||||
<title>Update Me To Title Your App</title>
|
||||
</head>
|
||||
<body>
|
||||
<noscript>
|
||||
You need to enable JavaScript to run this app.
|
||||
</noscript>
|
||||
<div id="root"></div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,10 @@
|
|||
import React from 'react';
|
||||
import './index.scss';
|
||||
import reactDom from 'react-dom';
|
||||
|
||||
import App from './App';
|
||||
// let root = createRoot(document.getElementById('root'))
|
||||
reactDom.render(<App/>,document.getElementById('root'));
|
||||
if (module && module.hot) {
|
||||
module.hot.accept();
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
body {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-family: sans-serif;
|
||||
}
|
|
@ -0,0 +1,41 @@
|
|||
{
|
||||
"extends": "plugin:react/recommended",
|
||||
// "parser": "babel-eslint",
|
||||
"rules": {
|
||||
"react/jsx-uses-react": 1,
|
||||
"react/jsx-uses-vars": 1,
|
||||
"react/react-in-jsx-scope": 1,
|
||||
"react/jsx-tag-spacing": [0, {
|
||||
"beforeSelfClosing": "always"
|
||||
}],
|
||||
"curly": [1],
|
||||
"linebreak-style": [1, "unix"],
|
||||
"semi": [1, "always"],
|
||||
"comma-dangle": [0],
|
||||
"no-unused-vars": [1, {
|
||||
"vars": "all",
|
||||
"args": "none",
|
||||
"ignoreRestSiblings": true
|
||||
}],
|
||||
"no-console": [0],
|
||||
"object-curly-spacing": [1, "always"],
|
||||
"keyword-spacing": ["error"]
|
||||
},
|
||||
"parserOptions": {
|
||||
"ecmaFeatures": {
|
||||
"experimentalObjectRestSpread": true,
|
||||
"jsx": true
|
||||
},
|
||||
"sourceType": "module"
|
||||
},
|
||||
"env": {
|
||||
"es6": true,
|
||||
"browser": true,
|
||||
"node": false
|
||||
},
|
||||
"plugins": [
|
||||
"jsx-a11y",
|
||||
"react"
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
# dependencies
|
||||
/node_modules
|
||||
|
||||
|
||||
# production
|
||||
/build
|
||||
|
||||
#IDE
|
||||
.vscode/
|
||||
.project/
|
||||
.idea/
|
|
@ -0,0 +1 @@
|
|||
# @d3v4pp/cli : React template
|
|
@ -0,0 +1,27 @@
|
|||
const webpack = require('webpack');
|
||||
const configWP = require("./webpack.config");
|
||||
|
||||
|
||||
const compiler = webpack(configWP);
|
||||
|
||||
compiler.run((err, stats) => {
|
||||
if (err ) {
|
||||
throw err;
|
||||
}
|
||||
if (stats.hasErrors()) {
|
||||
console.error(stats.toString({
|
||||
chunks: false, // Makes the build much quieter
|
||||
colors: true // Shows colors in the console
|
||||
}));
|
||||
}
|
||||
compiler.close((closeErr) => {
|
||||
if (closeErr) {
|
||||
throw closeErr;
|
||||
}
|
||||
// process.stdout.write(stats.toString() + '\n');
|
||||
console.log(stats.toString({
|
||||
chunks: false, // Makes the build much quieter
|
||||
colors: true // Shows colors in the console
|
||||
}));
|
||||
});
|
||||
});
|
|
@ -0,0 +1,16 @@
|
|||
const Webpack = require('webpack');
|
||||
const WebpackDevServer = require('webpack-dev-server');
|
||||
const webpackConfig = require('./webpack.config.js');
|
||||
|
||||
webpackConfig.mode = "development";
|
||||
|
||||
|
||||
const compiler = Webpack(webpackConfig);
|
||||
const devServerOptions = { ...webpackConfig.devServer, open: true };
|
||||
const server = new WebpackDevServer(devServerOptions, compiler);
|
||||
const runServer = async () => {
|
||||
console.log('Starting server...');
|
||||
await server.start();
|
||||
};
|
||||
|
||||
runServer();
|
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"name": "{name}",
|
||||
"version": "0.0.1",
|
||||
"description": "sweet react base App",
|
||||
"license": "MIT",
|
||||
"scripts": {
|
||||
"start": "devapp start -t react",
|
||||
"build": "devapp build -t react"
|
||||
},
|
||||
"main": "./src/index.js",
|
||||
"dependencies": {
|
||||
"react": "^18.2.0",
|
||||
"react-dom": "^18.2.0"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
import React, { Component } from 'react';
|
||||
import './App.scss';
|
||||
class App extends Component {
|
||||
render() {
|
||||
return (
|
||||
<div className="App">
|
||||
<header className="App-header">
|
||||
<img src='/assets/logo.png' className="App-logo" alt="logo" />
|
||||
<h1 className="App-title">Welcome to Sweet React Application</h1>
|
||||
</header>
|
||||
<p className="App-intro">
|
||||
HOT MODULE REPLACEMENT is on so :
|
||||
<br/>
|
||||
do not reload the browser
|
||||
<br />
|
||||
Just edit <code>src/App.js</code>
|
||||
<br />
|
||||
and save to reload. </p>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export default App;
|
|
@ -0,0 +1,23 @@
|
|||
.App {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.App-logo {
|
||||
height: 80px;
|
||||
}
|
||||
|
||||
.App-header {
|
||||
background-color: #222;
|
||||
height: 150px;
|
||||
padding: 20px;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.App-title {
|
||||
font-size: 1.5em;
|
||||
}
|
||||
|
||||
.App-intro {
|
||||
font-size: large;
|
||||
}
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
import React from 'react';
|
||||
import ReactDOM from 'react-dom';
|
||||
import App from './App';
|
||||
|
||||
it('renders without crashing', () => {
|
||||
const div = document.createElement('div');
|
||||
ReactDOM.render(<App />, div);
|
||||
});
|
After Width: | Height: | Size: 19 KiB |
After Width: | Height: | Size: 97 KiB |
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"short_name": "name",
|
||||
"name": "name",
|
||||
"icons": [
|
||||
{
|
||||
"src": "/assets/logo.png",
|
||||
"sizes": "256x256",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "/assets/logo.png",
|
||||
"sizes": "64x64 32x32 24x24 16x16",
|
||||
"type": "image/x-icon"
|
||||
}
|
||||
],
|
||||
"start_url": "/",
|
||||
"display": "standalone",
|
||||
"theme_color": "#000000",
|
||||
"background_color": "#ffffff"
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta name="theme-color" content="#000000">
|
||||
<!--
|
||||
manifest.json provides metadata used when your web app is added to the
|
||||
homescreen on Android. See https://developers.google.com/web/fundamentals/engage-and-retain/web-app-manifest/
|
||||
-->
|
||||
<link rel="shortcut icon" href="<%= favicon %>" type="image/x-icon">
|
||||
<link rel="manifest" href="<%= manifest %>">
|
||||
|
||||
<title>Update Me To Title Your App</title>
|
||||
</head>
|
||||
<body>
|
||||
<noscript>
|
||||
You need to enable JavaScript to run this app.
|
||||
</noscript>
|
||||
<div id="root"></div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,9 @@
|
|||
import React from 'react';
|
||||
import reactDom from 'react-dom';
|
||||
import './index.scss';
|
||||
import App from './App';
|
||||
// let root = createRoot(document.getElementById('root'))
|
||||
reactDom.render(<App/>,document.getElementById('root'));
|
||||
if (module && module.hot) {
|
||||
module.hot.accept();
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
body {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-family: sans-serif;
|
||||
}
|
|
@ -0,0 +1,64 @@
|
|||
const path = require('path');
|
||||
const HtmlWebpackPlugin = require('html-webpack-plugin');
|
||||
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
|
||||
const CopyPlugin = require("copy-webpack-plugin");
|
||||
|
||||
module.exports = {
|
||||
entry: ['./src/index.js'],
|
||||
mode: "production",
|
||||
target: "web",
|
||||
module: {
|
||||
rules: [
|
||||
{
|
||||
test: /\.(js|jsx)$/i,
|
||||
exclude: /(node_modules|bower_components)/,
|
||||
use: {
|
||||
loader: 'babel-loader',
|
||||
options: {
|
||||
presets: ['@babel/preset-env', "@babel/preset-react"],
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
test: /\.s[ac]ss$/i,
|
||||
use: [MiniCssExtractPlugin.loader, "css-loader", "sass-loader"],
|
||||
},
|
||||
{
|
||||
test: /\.css$/i,
|
||||
use: [MiniCssExtractPlugin.loader, "css-loader"],
|
||||
}
|
||||
],
|
||||
},
|
||||
plugins: [new HtmlWebpackPlugin({
|
||||
template: path.resolve("src", "index.html")
|
||||
}), new MiniCssExtractPlugin(),
|
||||
new CopyPlugin({
|
||||
patterns: [
|
||||
{ from: "src/assets", to: "assets" }
|
||||
],
|
||||
})],
|
||||
output: {
|
||||
path: path.resolve(__dirname, 'build'),
|
||||
filename: '[name].d3v4pp.bundle.js',
|
||||
publicPath: "/"
|
||||
},
|
||||
devServer: {
|
||||
client: {
|
||||
progress: true,
|
||||
reconnect: true,
|
||||
overlay: {
|
||||
errors: true,
|
||||
warnings: false,
|
||||
},
|
||||
},
|
||||
hot: true,
|
||||
historyApiFallback: true,
|
||||
open: true,
|
||||
static: {
|
||||
directory: path.join(__dirname, 'src'),
|
||||
},
|
||||
compress: true,
|
||||
port: 9000,
|
||||
|
||||
}
|
||||
};
|
|
@ -0,0 +1 @@
|
|||
# @d3v4pp/cli : Simple template
|
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
"name": "{name}",
|
||||
"version": "1.0.0",
|
||||
"description": "@d3v4pp browser template to use with jquery materialize bootstrap and all native browser javascript framworks",
|
||||
"main": "src/index.js",
|
||||
"scripts": {
|
||||
"start": "devapp start -t simple",
|
||||
"build": "devapp build -t simple"
|
||||
},
|
||||
"keywords": [],
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"jquery": "^3.6.0",
|
||||
"materialize-css": "^1.0.0-rc.2"
|
||||
}
|
||||
}
|
After Width: | Height: | Size: 80 KiB |
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"short_name": "test",
|
||||
"name": "test",
|
||||
"icons": [
|
||||
{
|
||||
"src": "./logo.png",
|
||||
"sizes": "256x256",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "logo.png",
|
||||
"sizes": "64x64 32x32 24x24 16x16",
|
||||
"type": "image/x-icon"
|
||||
}
|
||||
],
|
||||
"start_url": "/",
|
||||
"display": "standalone",
|
||||
"theme_color": "#000000",
|
||||
"background_color": "#ffffff"
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link rel="shortcut icon" href="<%= favicon %>" type="image/x-icon">
|
||||
<link rel="manifest" href="<%= manifest %>">
|
||||
|
||||
<title>Document</title>
|
||||
</head>
|
||||
<body>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,41 @@
|
|||
import "./style.scss";
|
||||
import "materialize-css/dist/css/materialize.css";
|
||||
import $ from 'jQuery';
|
||||
$(() => {
|
||||
console.log("its working")
|
||||
$(`body`).append($(`
|
||||
<ul class="collection">
|
||||
<li class="collection-item avatar">
|
||||
<img src="/assets/logo.png" alt="" class="circle">
|
||||
<span class="title">AYOUB</span>
|
||||
<p>First Line <br>
|
||||
Second Line
|
||||
</p>
|
||||
<a href="#!" class="secondary-content"><i class="material-icons">grade</i></a>
|
||||
</li>
|
||||
<li class="collection-item avatar">
|
||||
<img src="/assets/logo.png" alt="" class="circle">
|
||||
<span class="title">SOSO</span>
|
||||
<p>First Line <br>
|
||||
Second Line
|
||||
</p>
|
||||
<a href="#!" class="secondary-content"><i class="material-icons">grade</i></a>
|
||||
</li>
|
||||
<li class="collection-item avatar">
|
||||
<img src="/assets/logo.png" alt="" class="circle">
|
||||
<span class="title">TONTON</span>
|
||||
<p>First Line <br>
|
||||
Second Line
|
||||
</p>
|
||||
<a href="#!" class="secondary-content"><i class="material-icons">grade</i></a>
|
||||
</li>
|
||||
<li class="collection-item avatar">
|
||||
<img src="/assets/logo.png" alt="" class="circle">
|
||||
<span class="title">Title</span>
|
||||
<p>First Line <br>
|
||||
Second Line
|
||||
</p>
|
||||
<a href="#!" class="secondary-content"><i class="material-icons">grade</i></a>
|
||||
</li>
|
||||
</ul>`));
|
||||
});
|
|
@ -0,0 +1,7 @@
|
|||
$body-color: red;
|
||||
$body-bg-color: rgba(41, 231, 248, 0.382);
|
||||
|
||||
body {
|
||||
color: $body-color;
|
||||
background-color: $body-bg-color;
|
||||
}
|
|
@ -0,0 +1 @@
|
|||
# @d3v4pp/cli : Simple template
|
|
@ -0,0 +1,27 @@
|
|||
const webpack = require('webpack');
|
||||
const configWP = require("./webpack.config");
|
||||
|
||||
|
||||
const compiler = webpack(configWP);
|
||||
|
||||
compiler.run((err, stats) => {
|
||||
if (err ) {
|
||||
throw err;
|
||||
}
|
||||
if (stats.hasErrors()) {
|
||||
console.error(stats.toString({
|
||||
chunks: false, // Makes the build much quieter
|
||||
colors: true // Shows colors in the console
|
||||
}));
|
||||
}
|
||||
compiler.close((closeErr) => {
|
||||
if (closeErr) {
|
||||
throw closeErr;
|
||||
}
|
||||
// process.stdout.write(stats.toString() + '\n');
|
||||
console.log(stats.toString({
|
||||
chunks: false, // Makes the build much quieter
|
||||
colors: true // Shows colors in the console
|
||||
}));
|
||||
});
|
||||
});
|
|
@ -0,0 +1,16 @@
|
|||
const Webpack = require('webpack');
|
||||
const WebpackDevServer = require('webpack-dev-server');
|
||||
const webpackConfig = require('./webpack.config.js');
|
||||
|
||||
webpackConfig.mode = "development";
|
||||
|
||||
|
||||
const compiler = Webpack(webpackConfig);
|
||||
const devServerOptions = { ...webpackConfig.devServer, open: true };
|
||||
const server = new WebpackDevServer(devServerOptions, compiler);
|
||||
const runServer = async () => {
|
||||
console.log('Starting server...');
|
||||
await server.start();
|
||||
};
|
||||
|
||||
runServer();
|
|
@ -0,0 +1,24 @@
|
|||
{
|
||||
"name": "simple",
|
||||
"version": "1.0.0",
|
||||
"description": "",
|
||||
"main": "webpack.config.js",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"keywords": [],
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"devDependencies": {
|
||||
"html-webpack-plugin": "^5.5.0",
|
||||
"mini-css-extract-plugin": "^2.6.1",
|
||||
"sass": "^1.53.0",
|
||||
"sass-loader": "^13.0.2",
|
||||
"webpack": "^5.73.0",
|
||||
"webpack-dev-server": "^4.9.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"jquery": "^3.6.0",
|
||||
"materialize-css": "^1.0.0-rc.2"
|
||||
}
|
||||
}
|
After Width: | Height: | Size: 80 KiB |
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"short_name": "test",
|
||||
"name": "test",
|
||||
"icons": [
|
||||
{
|
||||
"src": "./logo.png",
|
||||
"sizes": "256x256",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "logo.png",
|
||||
"sizes": "64x64 32x32 24x24 16x16",
|
||||
"type": "image/x-icon"
|
||||
}
|
||||
],
|
||||
"start_url": "/",
|
||||
"display": "standalone",
|
||||
"theme_color": "#000000",
|
||||
"background_color": "#ffffff"
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link rel="shortcut icon" href="<%= favicon %>" type="image/x-icon">
|
||||
<link rel="manifest" href="<%= manifest %>">
|
||||
<title>Document</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,42 @@
|
|||
import "./style.scss";
|
||||
import "materialize-css/dist/css/materialize.css";
|
||||
import $ from 'jQuery';
|
||||
$(() => {
|
||||
console.log("its working")
|
||||
$(`body`).append($(`
|
||||
<ul class="collection">
|
||||
<li class="collection-item avatar">
|
||||
<img src="/assets/logo.png" alt="" class="circle">
|
||||
<span class="title">AYOUB</span>
|
||||
<p>First Line <br>
|
||||
Second Line
|
||||
</p>
|
||||
<a href="#!" class="secondary-content"><i class="material-icons">grade</i></a>
|
||||
</li>
|
||||
<li class="collection-item avatar">
|
||||
<img src="/assets/logo.png" alt="" class="circle">
|
||||
<span class="title">SOSO</span>
|
||||
<p>First Line <br>
|
||||
Second Line
|
||||
</p>
|
||||
<a href="#!" class="secondary-content"><i class="material-icons">grade</i></a>
|
||||
</li>
|
||||
<li class="collection-item avatar">
|
||||
<img src="/assets/logo.png" alt="" class="circle">
|
||||
<span class="title">TONTON</span>
|
||||
<p>First Line <br>
|
||||
Second Line
|
||||
</p>
|
||||
<a href="#!" class="secondary-content"><i class="material-icons">grade</i></a>
|
||||
</li>
|
||||
<li class="collection-item avatar">
|
||||
<img src="/assets/logo.png" alt="" class="circle">
|
||||
<span class="title">Title</span>
|
||||
<p>First Line <br>
|
||||
Second Line
|
||||
</p>
|
||||
<a href="#!" class="secondary-content"><i class="material-icons">grade</i></a>
|
||||
</li>
|
||||
</ul>`));
|
||||
});
|
||||
//
|
|
@ -0,0 +1,7 @@
|
|||
$body-color: red;
|
||||
$body-bg-color: rgba(41, 231, 248, 0.382);
|
||||
|
||||
body {
|
||||
color: $body-color;
|
||||
background-color: $body-bg-color;
|
||||
}
|
|
@ -0,0 +1,56 @@
|
|||
const path = require('path');
|
||||
const HtmlWebpackPlugin = require('html-webpack-plugin');
|
||||
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
|
||||
const CopyPlugin = require('copy-webpack-plugin');
|
||||
|
||||
module.exports = {
|
||||
entry: ['./src/index.js'],
|
||||
mode: "production",
|
||||
target: "web",
|
||||
module: {
|
||||
rules: [
|
||||
{
|
||||
test: /\.s[ac]ss$/i,
|
||||
use: [MiniCssExtractPlugin.loader, "css-loader", "sass-loader"],
|
||||
},
|
||||
{
|
||||
test: /\.css$/i,
|
||||
use: [MiniCssExtractPlugin.loader, "css-loader"],
|
||||
}
|
||||
],
|
||||
},
|
||||
plugins: [new HtmlWebpackPlugin({
|
||||
template: path.resolve("src", "index.html"),
|
||||
templateParameters: {
|
||||
'favicon': '/assets/logo.png',
|
||||
'manifest': '/assets/manifest.json'
|
||||
},
|
||||
}), new MiniCssExtractPlugin(),new CopyPlugin({
|
||||
patterns: [
|
||||
{ from: "src/assets", to: "assets" }
|
||||
],
|
||||
})],
|
||||
output: {
|
||||
path: path.resolve(__dirname, 'build'),
|
||||
filename: '[name].d3v4pp.bundle.js',
|
||||
publicPath: "/"
|
||||
|
||||
},
|
||||
devServer: {
|
||||
client: {
|
||||
progress: true,
|
||||
reconnect: true,
|
||||
overlay: {
|
||||
errors: true,
|
||||
warnings: false,
|
||||
},
|
||||
},
|
||||
historyApiFallback: true,
|
||||
open: true,
|
||||
static: {
|
||||
directory: path.join(__dirname, 'src'),
|
||||
},
|
||||
compress: true,
|
||||
port: 9000
|
||||
}
|
||||
};
|
|
@ -0,0 +1,34 @@
|
|||
{
|
||||
"extends": "eslint:recommended",
|
||||
"parser": "babel-eslint",
|
||||
"rules": {
|
||||
"react/jsx-uses-react": 1,
|
||||
"react/jsx-uses-vars": 1,
|
||||
"react/react-in-jsx-scope": 1,
|
||||
"react/jsx-tag-spacing": [0, {
|
||||
"beforeSelfClosing": "always"
|
||||
}],
|
||||
"curly": [1],
|
||||
"linebreak-style": [1, "unix"],
|
||||
"semi": [1, "always"],
|
||||
"comma-dangle": [0],
|
||||
"no-unused-vars": [1, {
|
||||
"vars": "all",
|
||||
"args": "none",
|
||||
"ignoreRestSiblings": true
|
||||
}],
|
||||
"no-console": [0],
|
||||
"object-curly-spacing": [1, "always"],
|
||||
"keyword-spacing": ["error"]
|
||||
},
|
||||
"env": {
|
||||
"es6": true,
|
||||
"browser": true,
|
||||
"node": true
|
||||
},
|
||||
"plugins": [
|
||||
"jsx-a11y",
|
||||
"react"
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
# dependencies
|
||||
/node_modules
|
||||
|
||||
|
||||
# production
|
||||
/build
|
||||
|
||||
#IDE
|
||||
.vscode/
|
||||
.project/
|
||||
.idea/
|
|
@ -0,0 +1,18 @@
|
|||
# Sweet app sweet
|
||||
|
||||
This is a base application generated by @sweetcom/cli
|
||||
// TODO feel free to update all files in this template
|
||||
|
||||
## start developpement
|
||||
|
||||
run :
|
||||
~~~
|
||||
npm start
|
||||
//or
|
||||
sweet start
|
||||
// to start dev server
|
||||
~~~
|
||||
|
||||
|
||||
## more documentation
|
||||
please visite [@Sweetcom/cli](http://cli.sweetcom75.fr) web site
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"name": "FOLDERNAME",
|
||||
"version": "0.0.1",
|
||||
"description": "sweet react base App",
|
||||
"license": "MIT",
|
||||
"scripts": {
|
||||
"start": "devapp start",
|
||||
"build": "devapp build"
|
||||
},
|
||||
"main": "./src/index.js",
|
||||
"devDependencies": {
|
||||
"babel-eslint": "^10.1.0",
|
||||
"eslint-loader": "^4.0.2",
|
||||
"eslint-plugin-jsx-a11y": "^6.5.1",
|
||||
"eslint-plugin-react": "^7.29.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"react": "^16.12.0",
|
||||
"react-dom": "^16.12.0"
|
||||
}
|
||||
}
|
After Width: | Height: | Size: 97 KiB |
After Width: | Height: | Size: 19 KiB |
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"short_name": "Sweet App",
|
||||
"name": "SweetCom75 way to write Apps",
|
||||
"icons": [
|
||||
{
|
||||
"src": "assets/logo.png",
|
||||
"sizes": "256x256",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "favicon.ico",
|
||||
"sizes": "64x64 32x32 24x24 16x16",
|
||||
"type": "image/x-icon"
|
||||
}
|
||||
],
|
||||
"start_url": "./index.html",
|
||||
"display": "standalone",
|
||||
"theme_color": "#000000",
|
||||
"background_color": "#ffffff"
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
import React, { Component } from 'react';
|
||||
import './App.scss';
|
||||
class App extends Component {
|
||||
render() {
|
||||
return (
|
||||
<div className="App">
|
||||
<header className="App-header">
|
||||
<img src='/assets/logo.png' className="App-logo" alt="logo" />
|
||||
<h1 className="App-title">Welcome to Sweet React Application</h1>
|
||||
</header>
|
||||
<p className="App-intro">
|
||||
HOT MODULE REPLACEMENT is on so :
|
||||
<br/>
|
||||
do not reload the browser
|
||||
<br />
|
||||
Just edit <code>src/App.js</code>
|
||||
<br />
|
||||
and save to reload. </p>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export default App;
|
|
@ -0,0 +1,23 @@
|
|||
.App {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.App-logo {
|
||||
height: 80px;
|
||||
}
|
||||
|
||||
.App-header {
|
||||
background-color: #222;
|
||||
height: 150px;
|
||||
padding: 20px;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.App-title {
|
||||
font-size: 1.5em;
|
||||
}
|
||||
|
||||
.App-intro {
|
||||
font-size: large;
|
||||
}
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
import React from 'react';
|
||||
import ReactDOM from 'react-dom';
|
||||
import App from './App';
|
||||
|
||||
it('renders without crashing', () => {
|
||||
const div = document.createElement('div');
|
||||
ReactDOM.render(<App />, div);
|
||||
});
|
|
@ -0,0 +1,21 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta name="theme-color" content="#000000">
|
||||
<!--
|
||||
manifest.json provides metadata used when your web app is added to the
|
||||
homescreen on Android. See https://developers.google.com/web/fundamentals/engage-and-retain/web-app-manifest/
|
||||
-->
|
||||
<link rel="manifest" href="/manifest.json">
|
||||
<link rel="shortcut icon" href="/favicon.ico">
|
||||
<title>Update Me To Title Your App</title>
|
||||
</head>
|
||||
<body>
|
||||
<noscript>
|
||||
You need to enable JavaScript to run this app.
|
||||
</noscript>
|
||||
<div id="root"></div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,10 @@
|
|||
import React from 'react';
|
||||
import ReactDOM from 'react-dom';
|
||||
import './index.scss';
|
||||
import App from './App';
|
||||
|
||||
ReactDOM.render(<App />, document.getElementById('root'));
|
||||
|
||||
if (module && module.hot) {
|
||||
module.hot.accept();
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
body {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-family: sans-serif;
|
||||
}
|