#author("2019-04-23T17:58:08+09:00","default:ryuichi","ryuichi")
#author("2019-04-23T18:31:00+09:00","default:ryuichi","ryuichi")
* TypeScript + Express.js で Hello World [#vb3e1bbe]

** NPM package.json 初期化 [#xa85a3cd]

 npm init -y

** Webpack インストール [#y4ba9355]

*** Webpack関連のモジュールをインストールする [#c22abc26]

 npm install -D webpack webpack-cli '@webpack-cli/init'
 npm install -D webpack-node-externals
 npm install -D rimraf mkdirp
 npm install '@babel/core' '@babel/polyfill' '@babel/preset-env' babel-loader

- rimraf & mkdirp : https://stackoverflow.com/questions/41451884/how-to-run-rm-command-on-windows-10

*** webpack.config.jsを作る [#xe2b1cb1]

 vim webpack.config.js

 module.exports = {
     target: 'node',
     mode: 'development',
     entry: path.resolve(__dirname, 'src/app.js'),
     module: {
         rules: [
             {
                 test: /\.js$/,
                 exclude: /node_modules/,
                 use: {
                     loader: 'babel-loader',
                     options: {
                         presets: ['@babel/preset-env']
                     }
                 }
             },
         ]
     },
     resolve: {
         extensions: ['.js']
     },
     output: {
         filename: 'app.js',
         path: path.resolve(__dirname, 'dist')
     }
 };

- https://github.com/babel/babel-loader

** TypeScirpt インストール [#za569842]

*** TypeScript関連のモジュールをインストールする [#t46b33e5]

 npm add -D typescript ts-node @types/node core-js ts-loader
 npx tsc --init

*** WebpackでTSをビルドできるようにwebpack.config.jsを書く [#k7fe8348]

 vim webpack.config.js

   module: {
     rules: [
 +     {
 +       test: /\.ts$/,
 +       use: 'ts-loader',
 +       exclude: /node_modules/
 +     },
 
   resolve: {
 +   extensions: ['.ts', '.js']
   },

- https://github.com/TypeStrong/ts-loader#configuration

** Express.js インストール [#m81f1a3a]

 npm install express
 npm install -D '@types/express'

** Git リポジトリ初期化 [#ma4de9ef]

*** .gitignore を書く [#z4b5a828]

 vim .gitignore

 node_modules/
 package-lock.json

*** Gitリポジトリを作成して、初回コミットする [#v922660f]

 git init
 git add .
 git commit -m 'Initial commit'

** Express.js アプリケーション作成 [#x4d9b3df]

*** npmでビルドとアプリケーション起動できるようにする [#j7fecf0a]

 vim package.json
 -----
   "scripts": {
 +   "build": "rimraf ./dist && mkdirp ./dist && npx webpack",
 +   "start": "node ./dist/bundle.js",
    "test": "echo \"Error: no test specified\" && exit 1"
   },
 -----

*** Express.js を使ったアプリケーションを書く [#v90da990]

 vim src/app.ts

 import express from 'express';
 
 const app = express();
 
 app.get('/', (req, res) => res.send('Hello World'));
 
 app.listen(3000, () => console.log('Example app listening on port 3000'));
 
 export default app;

** ビルドとアプリケーション起動 [#ceb56d46]

 npm run build
 npm run start

** 参考 [#p9096698]

https://github.com/yanoryuichi/ExpressJS-HelloWorld
https://github.com/yanoryuichi/TypeScript-Express-HelloWorld

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS