3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Nuxt.js+Express.jsにTypeScriptを導入してみた(backpack.js編)

Last updated at Posted at 2019-07-01

以前下記記事でTypeScriptに対応したNuxt.js+Express.jsを公開したが、サーバーにアップロードするためには不十分なので、追加で記事を作成

Nuxt.js+Express.jsにTypeScriptを導入してみた

ソース

主な環境

  • Nuxt.js v2.8.1
  • @nuxt/typescript v2.8.1
  • Express.js v4.17.1
  • ts-node v8.2.0
  • nodemon v1.19.1
  • backpack-core v0.8.4
  • awesome-typescript-loader v5.2.1

backpack.jsを使ってts化されたファイルをコンパイル

まずはbackpackとawesome-typescript-loaderを追加する

yarn add backpack-core awesome-typescript-loader

ts-loaderだとダメでした。

backpackの設定

config.entry.mainで起動スクリプトのパスを設定
loaderを先ほどinstallしたawesome-typescript-loaderに設定

backpack.config.js
module.exports = {
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
  webpack: (config, options, webpack) => {
    config.entry.main = './server/index.ts'
    config.resolve = {
      extensions: ['.ts', '.js', '.json']
    }
    config.module.rules.push({
      test: /\.ts$/,
      loader: 'awesome-typescript-loader'
    })
    return config
  }
}

package.jsonの設定

起動時の設定をする

package.json
"scripts": {
    "lint": "eslint --ext .ts,.js,.vue --ignore-path .gitignore .",
    "precommit": "yarn run lint",
    "dev": "backpack dev",
    "build": "nuxt build && backpack build",
    "start": "cross-env NODE_ENV=production node build/main.js",
    "generate": "nuxt generate"
},

tsconfig.jsonの設定

これは以前コメントアウトしたものを戻す

tsconfig.json
{
  "compilerOptions": {
    "target": "esnext",
    "module": "esnext",
    "moduleResolution": "node",
    "lib": [
      "esnext",
      "esnext.asynciterable",
      "dom"
    ],
    "esModuleInterop": true,
    "experimentalDecorators": true,
    "allowJs": true,
    "sourceMap": true,
    "strict": true,
    "noImplicitAny": false,
    "noEmit": true,
    "baseUrl": ".",
    "paths": {
      "~/*": [
        "./*"
      ],
      "@/*": [
        "./*"
      ]
    },
    "types": [
      "@types/node",
      "@nuxt/vue-app"
    ]
  }
}

これにて設定完了

起動

localで起動する場合はそのまま

yarn run dev

buildするときも

yarn run build

でnode.jsで動くようにコンパイルしてくれます。

build/main.jsが起動ファイルになります。

まとめ

loaderの相性もあることを知りました。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?