ijl cli init
This commit is contained in:
		
							parent
							
								
									650253121c
								
							
						
					
					
						commit
						11f3ee76ba
					
				
							
								
								
									
										22
									
								
								ijl.config.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								ijl.config.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,22 @@
 | 
				
			|||||||
 | 
					const pkg = require('./package')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					module.exports = {
 | 
				
			||||||
 | 
					  apiPath: 'stubs/api',
 | 
				
			||||||
 | 
					  webpackConfig: {
 | 
				
			||||||
 | 
					    output: {
 | 
				
			||||||
 | 
					      publicPath: `/static/${pkg.name}/${process.env.VERSION || pkg.version}/`
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  /* use https://kc.admin.inno-js.ru/ to create config, navigations and features */
 | 
				
			||||||
 | 
					  navigations: {
 | 
				
			||||||
 | 
					    'r-and-m.main': '/r-and-m'
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  features: {
 | 
				
			||||||
 | 
					    'r-and-m': {
 | 
				
			||||||
 | 
					      // add your features here in the format [featureName]: { value: string }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  config: {
 | 
				
			||||||
 | 
					    key: 'value'
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										7807
									
								
								package-lock.json
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										7807
									
								
								package-lock.json
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										28
									
								
								package.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								package.json
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,28 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					    "name": "r-and-m",
 | 
				
			||||||
 | 
					    "version": "1.0.0",
 | 
				
			||||||
 | 
					    "description": "",
 | 
				
			||||||
 | 
					    "main": "./src/index.tsx",
 | 
				
			||||||
 | 
					    "directories": {
 | 
				
			||||||
 | 
					        "doc": "docs"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "scripts": {
 | 
				
			||||||
 | 
					        "test": "echo \"Error: no test specified\" && exit 1",
 | 
				
			||||||
 | 
					        "start": "ijl-cli server --port=8099 --with-open-browser",
 | 
				
			||||||
 | 
					        "build": "npm run clean && ijl-cli build --dev",
 | 
				
			||||||
 | 
					        "build:prod": "npm run clean && ijl-cli build",
 | 
				
			||||||
 | 
					        "clean": "rimraf dist"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "keywords": [],
 | 
				
			||||||
 | 
					    "author": "",
 | 
				
			||||||
 | 
					    "license": "ISC",
 | 
				
			||||||
 | 
					    "dependencies": {
 | 
				
			||||||
 | 
					        "@ijl/cli": "^5.1.0",
 | 
				
			||||||
 | 
					        "@types/react": "^18.2.74",
 | 
				
			||||||
 | 
					        "@types/react-dom": "^18.2.24",
 | 
				
			||||||
 | 
					        "express": "^4.19.2",
 | 
				
			||||||
 | 
					        "react": "^18.2.0",
 | 
				
			||||||
 | 
					        "react-dom": "^18.2.0",
 | 
				
			||||||
 | 
					        "typescript": "^5.4.4"
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										14
									
								
								src/app.tsx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								src/app.tsx
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,14 @@
 | 
				
			|||||||
 | 
					import React from 'react';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import { LandingPage } from './pages/landing'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import './style/main.css'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const App = () => {
 | 
				
			||||||
 | 
					  return (
 | 
				
			||||||
 | 
					    <LandingPage />
 | 
				
			||||||
 | 
					  );
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default App;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										23
									
								
								src/index.tsx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								src/index.tsx
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,23 @@
 | 
				
			|||||||
 | 
					import React from 'react';
 | 
				
			||||||
 | 
					import ReactDOM from 'react-dom/client';
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					import App from './app';
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					export default () => <App/>;
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					let rootElement: ReactDOM.Root
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					export const mount = (Сomponent, element = document.getElementById('app')) => {
 | 
				
			||||||
 | 
					  const rootElement = ReactDOM.createRoot(element);
 | 
				
			||||||
 | 
					  rootElement.render(<Сomponent/>);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if(module.hot) {
 | 
				
			||||||
 | 
					      module.hot.accept('./app', ()=> {
 | 
				
			||||||
 | 
					        rootElement.render(<Сomponent/>);
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export const unmount = () => {
 | 
				
			||||||
 | 
					  rootElement.unmount();
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
							
								
								
									
										98
									
								
								src/pages/landing.tsx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										98
									
								
								src/pages/landing.tsx
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,98 @@
 | 
				
			|||||||
 | 
					import React from "react";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export const LandingPage = () => {
 | 
				
			||||||
 | 
					  return (
 | 
				
			||||||
 | 
					    <>
 | 
				
			||||||
 | 
					      <header id="header">
 | 
				
			||||||
 | 
					        <img
 | 
				
			||||||
 | 
					          className="logo"
 | 
				
			||||||
 | 
					          height="44p"
 | 
				
			||||||
 | 
					          width="227"
 | 
				
			||||||
 | 
					          src="./assets/logo_4x.png"
 | 
				
			||||||
 | 
					          alt="Логотип. Надпись Рик и Морти"
 | 
				
			||||||
 | 
					          srcSet="
 | 
				
			||||||
 | 
					          ./assets/logo_1x.png 220w,
 | 
				
			||||||
 | 
					          ./assets/logo_2x.png 445w,
 | 
				
			||||||
 | 
					          ./assets/logo_4x.png 880w
 | 
				
			||||||
 | 
					        "
 | 
				
			||||||
 | 
					          sizes="
 | 
				
			||||||
 | 
					          (max-width: 240px) 100px,
 | 
				
			||||||
 | 
					          (min-width: 320px) 440px,
 | 
				
			||||||
 | 
					          (min-width: 520px) 880px
 | 
				
			||||||
 | 
					        "
 | 
				
			||||||
 | 
					        />
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <nav className="nav">
 | 
				
			||||||
 | 
					          <ul>
 | 
				
			||||||
 | 
					            <li>
 | 
				
			||||||
 | 
					              <a className="link" href="#01">
 | 
				
			||||||
 | 
					                Home
 | 
				
			||||||
 | 
					              </a>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					            <li>
 | 
				
			||||||
 | 
					              <a className="link link__contrast" href="#02">
 | 
				
			||||||
 | 
					                Персонажи
 | 
				
			||||||
 | 
					              </a>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					            <li>
 | 
				
			||||||
 | 
					              <a className="link link__contrast" href="#03">
 | 
				
			||||||
 | 
					                Локации
 | 
				
			||||||
 | 
					              </a>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					            <li>
 | 
				
			||||||
 | 
					              <a className="link link__contrast" href="#04">
 | 
				
			||||||
 | 
					                Эризоды
 | 
				
			||||||
 | 
					              </a>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					          </ul>
 | 
				
			||||||
 | 
					        </nav>
 | 
				
			||||||
 | 
					      </header>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      <main className="main">
 | 
				
			||||||
 | 
					        <header className="card card-main">
 | 
				
			||||||
 | 
					          <div className="card-text">
 | 
				
			||||||
 | 
					            <h1 className="h1">
 | 
				
			||||||
 | 
					              Персонажи из <br />
 | 
				
			||||||
 | 
					              <span className="brand-text">огурчиковой вселенной</span>
 | 
				
			||||||
 | 
					            </h1>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            <p className="p card--text__p">
 | 
				
			||||||
 | 
					              На этой странице представлены персонажи из сериала “
 | 
				
			||||||
 | 
					              <a className="link" href="#">
 | 
				
			||||||
 | 
					                Rick and Morty
 | 
				
			||||||
 | 
					              </a>
 | 
				
			||||||
 | 
					              ”. Этот популярный анимационный сериал, созданный Джастином
 | 
				
			||||||
 | 
					              Ройландом и Дэном Хармоном, рассказывает о приключениях Рика
 | 
				
			||||||
 | 
					              Санчеза, гениального и эксцентричного ученого, и его внука Морти
 | 
				
			||||||
 | 
					              Смита.
 | 
				
			||||||
 | 
					            </p>
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					          <img className="card--img" src="./assets/cucumber.png" alt="" />
 | 
				
			||||||
 | 
					        </header>
 | 
				
			||||||
 | 
					        <article className="card card__toRight">
 | 
				
			||||||
 | 
					          <div className="card-text">
 | 
				
			||||||
 | 
					            <h1 className="h1">
 | 
				
			||||||
 | 
					              Персонажи из <br />
 | 
				
			||||||
 | 
					              <span className="brand-text">огурчиковой вселенной</span>
 | 
				
			||||||
 | 
					            </h1>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            <p className="p card--text__p">
 | 
				
			||||||
 | 
					              На этой странице представлены персонажи из сериала “
 | 
				
			||||||
 | 
					              <a className="link" href="#">
 | 
				
			||||||
 | 
					                Rick and Morty
 | 
				
			||||||
 | 
					              </a>
 | 
				
			||||||
 | 
					              ”. Этот популярный анимационный сериал, созданный Джастином
 | 
				
			||||||
 | 
					              Ройландом и Дэном Хармоном, рассказывает о приключениях Рика
 | 
				
			||||||
 | 
					              Санчеза, гениального и эксцентричного ученого, и его внука Морти
 | 
				
			||||||
 | 
					              Смита.
 | 
				
			||||||
 | 
					            </p>
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					          <img className="card--img" src="./assets/cucumber.png" alt="" />
 | 
				
			||||||
 | 
					        </article>
 | 
				
			||||||
 | 
					      </main>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      <aside></aside>
 | 
				
			||||||
 | 
					      <footer className="page-footer"></footer>
 | 
				
			||||||
 | 
					    </>
 | 
				
			||||||
 | 
					  );
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
@ -14,6 +14,10 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
html { height: 100%; }
 | 
					html { height: 100%; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					body.dark {
 | 
				
			||||||
 | 
					  --bg-main: #0f5c66;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
body {
 | 
					body {
 | 
				
			||||||
  font-family: "PT Sans", sans-serif;
 | 
					  font-family: "PT Sans", sans-serif;
 | 
				
			||||||
  background-color: var(--bg-main);
 | 
					  background-color: var(--bg-main);
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										3
									
								
								stubs/api/index.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								stubs/api/index.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,3 @@
 | 
				
			|||||||
 | 
					const router = require('express').Router();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					module.exports = router;
 | 
				
			||||||
							
								
								
									
										25
									
								
								tsconfig.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								tsconfig.json
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,25 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					    "compilerOptions": {
 | 
				
			||||||
 | 
					        "lib": [
 | 
				
			||||||
 | 
					            "dom",
 | 
				
			||||||
 | 
					            "es2017"
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					        "outDir": "./dist/",
 | 
				
			||||||
 | 
					        "sourceMap": true,
 | 
				
			||||||
 | 
					        "esModuleInterop": true,
 | 
				
			||||||
 | 
					        "noImplicitAny": false,
 | 
				
			||||||
 | 
					        "module": "esnext",
 | 
				
			||||||
 | 
					        "moduleResolution": "node",
 | 
				
			||||||
 | 
					        "target": "es6",
 | 
				
			||||||
 | 
					        "jsx": "react",
 | 
				
			||||||
 | 
					        "typeRoots": ["node_modules/@types", "src/typings"],
 | 
				
			||||||
 | 
					        "types" : ["webpack-env", "node"],
 | 
				
			||||||
 | 
					        "resolveJsonModule": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "exclude": [
 | 
				
			||||||
 | 
					        "node_modules",
 | 
				
			||||||
 | 
					        "**/*.test.ts",
 | 
				
			||||||
 | 
					        "**/*.test.tsx",
 | 
				
			||||||
 | 
					        "node_modules/@types/jest"
 | 
				
			||||||
 | 
					    ]        
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user