initial commit
This commit is contained in:
commit
f37e5d1fd0
21
.eslintrc.json
Normal file
21
.eslintrc.json
Normal file
@ -0,0 +1,21 @@
|
||||
{
|
||||
"parser": "@typescript-eslint/parser",
|
||||
"plugins": [
|
||||
"@typescript-eslint",
|
||||
"react"
|
||||
],
|
||||
"extends": [
|
||||
"eslint:recommended",
|
||||
"plugin:@typescript-eslint/eslint-recommended",
|
||||
"plugin:@typescript-eslint/recommended",
|
||||
"plugin:react/recommended"
|
||||
],
|
||||
"rules": {
|
||||
"semi": "error"
|
||||
},
|
||||
"parserOptions": {
|
||||
"ecmaFeatures": {
|
||||
"jsx": true
|
||||
}
|
||||
}
|
||||
}
|
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
/node_modules
|
||||
/dist
|
9198
package-lock.json
generated
Normal file
9198
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
34
package.json
Normal file
34
package.json
Normal file
@ -0,0 +1,34 @@
|
||||
{
|
||||
"name": "startpage",
|
||||
"version": "1.0.0",
|
||||
"description": "",
|
||||
"main": "src/index.ts",
|
||||
"scripts": {
|
||||
"devServer": "webpack-dev-server --mode development --inline --hot --open",
|
||||
"build": "webpack --mode development"
|
||||
},
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"devDependencies": {
|
||||
"@types/react": "^16.9.34",
|
||||
"@types/react-dom": "^16.9.6",
|
||||
"@typescript-eslint/eslint-plugin": "^2.28.0",
|
||||
"@typescript-eslint/parser": "^2.28.0",
|
||||
"css-loader": "^3.5.2",
|
||||
"eslint": "^6.8.0",
|
||||
"eslint-plugin-react": "^7.19.0",
|
||||
"html-webpack-plugin": "^4.2.0",
|
||||
"mini-css-extract-plugin": "^0.9.0",
|
||||
"node-sass": "^4.13.1",
|
||||
"sass-loader": "^8.0.2",
|
||||
"ts-loader": "^7.0.0",
|
||||
"typescript": "^3.8.3",
|
||||
"webpack": "^4.42.1",
|
||||
"webpack-cli": "^3.3.11",
|
||||
"webpack-dev-server": "^3.10.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"react": "^16.13.1",
|
||||
"react-dom": "^16.13.1"
|
||||
}
|
||||
}
|
14
src/components/app.tsx
Normal file
14
src/components/app.tsx
Normal file
@ -0,0 +1,14 @@
|
||||
import * as React from "react";
|
||||
|
||||
class App extends React.Component {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
}
|
||||
|
||||
render(): JSX.Element {
|
||||
return <h1>Hello world</h1>;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export default App;
|
10
src/index.html
Normal file
10
src/index.html
Normal file
@ -0,0 +1,10 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title></title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="root"></div>
|
||||
</body>
|
||||
</html>
|
12
src/index.tsx
Normal file
12
src/index.tsx
Normal file
@ -0,0 +1,12 @@
|
||||
import * as React from "react";
|
||||
import * as ReactDOM from "react-dom";
|
||||
|
||||
import App from "./components/app";
|
||||
|
||||
import "./style/default.scss";
|
||||
|
||||
ReactDOM.render(
|
||||
<App/>,
|
||||
document.getElementById("root")
|
||||
);
|
||||
|
3
src/style/default.scss
Normal file
3
src/style/default.scss
Normal file
@ -0,0 +1,3 @@
|
||||
body {
|
||||
background-color: darkgray;
|
||||
}
|
13
tsconfig.json
Normal file
13
tsconfig.json
Normal file
@ -0,0 +1,13 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"target": "es5",
|
||||
"module": "es6",
|
||||
"moduleResolution": "node",
|
||||
"sourceMap": true,
|
||||
"noLib": false,
|
||||
"jsx": "react",
|
||||
},
|
||||
"exclude": [
|
||||
"node_modules"
|
||||
]
|
||||
}
|
56
webpack.config.js
Normal file
56
webpack.config.js
Normal file
@ -0,0 +1,56 @@
|
||||
const HtmlWebpackPlugin = require("html-webpack-plugin");
|
||||
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
|
||||
const webpack = require("webpack");
|
||||
const path = require("path");
|
||||
|
||||
module.exports = {
|
||||
context: path.join(__dirname, "src"),
|
||||
resolve: {
|
||||
extensions: [".js", ".ts", ".tsx"]
|
||||
},
|
||||
entry: ["./index.tsx"],
|
||||
output: {
|
||||
path: path.join(__dirname, "dist"),
|
||||
filename: "bundle.js"
|
||||
},
|
||||
devtool: "source-map",
|
||||
devServer: {
|
||||
contentBase: "./dist", // Content base
|
||||
inline: true, // Enable watch and live reload
|
||||
host: "localhost",
|
||||
port: 8080,
|
||||
stats: "errors-only"
|
||||
},
|
||||
module: {
|
||||
rules: [
|
||||
{
|
||||
test: /\.(ts|tsx)$/,
|
||||
exclude: /node_modules/,
|
||||
loader: "ts-loader"
|
||||
},
|
||||
{
|
||||
test: /\.s[ac]ss$/i,
|
||||
use: [
|
||||
MiniCssExtractPlugin.loader,
|
||||
"css-loader",
|
||||
"sass-loader",
|
||||
],
|
||||
},
|
||||
{
|
||||
test: /\.(png|jpg|gif|svg)$/,
|
||||
loader: "file-loader",
|
||||
options: {
|
||||
name: "assets/img/[name].[ext]?[hash]"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
plugins: [
|
||||
new HtmlWebpackPlugin({
|
||||
filename: "index.html",
|
||||
template: "index.html",
|
||||
hash: true
|
||||
}),
|
||||
new MiniCssExtractPlugin()
|
||||
]
|
||||
};
|
Loading…
Reference in New Issue
Block a user