This commit is contained in:
Tommy Parnell
2017-12-16 12:07:56 -05:00
commit db367dece2
7 changed files with 124 additions and 0 deletions

2
.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
node_modules
dist

17
index.html Normal file
View File

@@ -0,0 +1,17 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Hello React!</title>
</head>
<body>
<div id="example"></div>
<!-- Dependencies -->
<script src="./node_modules/react/umd/react.development.js"></script>
<script src="./node_modules/react-dom/umd/react-dom.development.js"></script>
<!-- Main -->
<script src="./dist/bundle.js"></script>
</body>
</html>

22
package.json Normal file
View File

@@ -0,0 +1,22 @@
{
"name": "minbin",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"react": "^16.2.0",
"react-dom": "^16.2.0",
"react-redux": "^5.0.6"
},
"devDependencies": {
"awesome-typescript-loader": "^3.4.1",
"redux-devtools": "^3.4.1",
"source-map-loader": "^0.2.3",
"typescript": "^2.6.2"
}
}

17
src/components/Hello.tsx Normal file
View File

@@ -0,0 +1,17 @@
import * as React from "react";
import RaisedButton from 'material-ui/RaisedButton'
export interface HelloProps { compiler: string; framework: string; }
// 'HelloProps' describes the shape of props.
// State is never set so we use the '{}' type.
export class Hello extends React.Component<HelloProps, {}> {
render() {
return (
<div>
<h1>Hello from {this.props.compiler} and {this.props.framework}!</h1>
<RaisedButton label="Default" />
</div>
);
}
}

19
src/index.tsx Normal file
View File

@@ -0,0 +1,19 @@
import * as React from "react";
import * as ReactDOM from "react-dom";
import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider';
import { Hello } from "./components/Hello";
import darkBaseTheme from 'material-ui/styles/baseThemes/lightBaseTheme';
import getMuiTheme from 'material-ui/styles/getMuiTheme';
const darkMuiTheme = getMuiTheme(darkBaseTheme);
const App = () => (
<MuiThemeProvider muiTheme={darkMuiTheme}>
<Hello compiler="theme prov" framework="React" />
</MuiThemeProvider>
);
ReactDOM.render(
<App />,
document.getElementById("example")
);

13
tsconfig.json Normal file
View File

@@ -0,0 +1,13 @@
{
"compilerOptions": {
"outDir": "./dist/",
"sourceMap": true,
"noImplicitAny": true,
"module": "commonjs",
"target": "es6",
"jsx": "react"
},
"include": [
"./src/**/*"
]
}

34
webpack.config.js Normal file
View File

@@ -0,0 +1,34 @@
module.exports = {
entry: "./src/index.tsx",
output: {
filename: "bundle.js",
path: __dirname + "/dist"
},
// Enable sourcemaps for debugging webpack's output.
devtool: "source-map",
resolve: {
// Add '.ts' and '.tsx' as resolvable extensions.
extensions: [".ts", ".tsx", ".js", ".json"]
},
module: {
rules: [
// All files with a '.ts' or '.tsx' extension will be handled by 'awesome-typescript-loader'.
{ test: /\.tsx?$/, loader: "awesome-typescript-loader" },
// All output '.js' files will have any sourcemaps re-processed by 'source-map-loader'.
{ enforce: "pre", test: /\.js$/, loader: "source-map-loader" }
]
},
// When importing a module whose path matches one of the following, just
// assume a corresponding global variable exists and use that instead.
// This is important because it allows us to avoid bundling all of our
// dependencies, which allows browsers to cache those libraries between builds.
externals: {
"react": "React",
"react-dom": "ReactDOM"
},
};