【发布时间】:2021-07-04 04:40:59
【问题描述】:
在我看到的基于JavaScritpt的Nuxt项目的例子中,服务器入口在server/index.js,这是它的默认代码(对于Express.js框架案例):
const express = require('express')
const consola = require('consola')
const { Nuxt, Builder } = require('nuxt')
const app = express()
// Import and Set Nuxt.js options
let config = require('../nuxt.config.js')
config.dev = !(process.env.NODE_ENV === 'production')
async function start() {
// Init Nuxt.js
const nuxt = new Nuxt(config)
const {
host = process.env.HOST || '127.0.0.1',
port = process.env.PORT || 3000
} = nuxt.options.server
// Build only in dev mode
if (config.dev) {
const builder = new Builder(nuxt)
await builder.build()
}
// Give nuxt middleware to express
app.use(nuxt.render)
// Listen the server
app.listen(port, host)
consola.ready({
message: `Server listening on http://${host}:${port}`,
badge: true
})
}
start()
要使用标准 Nuxt 构建启动服务器脚本,名为 dev 脚本的任务已更改为:
"cross-env NODE_ENV=development nodemon server/index.js --watch server",
现在:如果我们想在 TypeScript 中(在 Nuxt TypeScript 项目中)编写 server/index,我们必须做什么?当然,只是将server/index.js 重命名为server/index.ts 是不够的,因为 Nuxt 必须知道我们在server/index.ts 中编写的源代码是什么,并且必须编译它。
Nuxt 从我们那里拿走了Webpack 的配置,上面写着“我会处理 Webpack 配置,你应该在 nuxt.config.js 中定义设置”。好吧,但是我们现在如何让 Nuxt 编译 server.ts 呢?
更具体
假设我们在server 子目录中有index.ts 和console.log("ok!) 内容。我们应该如何:
- 将其编译为 JavaScript,
- 启动服务器,在终端得到
ok!反馈输出?
使用 Webpack 很简单,但这种情况是 TypeScript Nuxt 项目,无法直接配置 Webpack。
【问题讨论】:
标签: typescript nuxt.js