我在这里找到了在typescript中初始化nodejs项目的描述:https://basarat.gitbooks.io/typescript/docs/quick/nodejs.html
如果我使用npm start运行代码,这也描述了一种自动编译onchange的方法。
我使用此配置创建了一个项目:
tsconfig.json:
{
"compilerOptions": {
/* Basic Options */
"target": "es2015", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', or 'ESNEXT'. */
"module": "commonjs", /* Specify module code generation: 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */
"outDir": "./build", /* Redirect output structure to the directory. */
/* Strict Type-Checking Options */
"strict": true /* Enable all strict type-checking options. */
},
"files":[
"server.ts",
"db/db.ts",
"protocol/protocol.ts"
]
}
的package.json
{
"name": "server",
"version": "1.0.0",
"description": "",
"main": "server.js",
"scripts": {
"start": "npm run build:live",
"build:live": "nodemon --exec node_modules\\.bin\\ts-node -- server.ts",
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"typescript": "^2.4.2"
},
"devDependencies": {
"@types/express": "^4.0.36",
"@types/node": "^8.0.20",
"express": "^4.15.4",
"mysql": "^2.14.1",
"nodemon": "^1.11.0",
"ts-node": "^3.3.0",
"typescript": "^2.4.2"
}
}
如果我更改主文件server.ts
,重新加载工作正常问题
如果我更改了db.ts或protocol.ts,则会执行重新加载,但不会重新编译db.ts和protocol.ts。
有什么想法吗?
答案 0 :(得分:2)
我不建议使用nodemon和ts-node来做dev,而是建议使用tsc-watch。
npm install tsc-watch --save-dev
在你的package.json
中你应该这样做:
"scripts": {
"start": "node ./build/server.js",
"build": "tsc",
"dev": "tsc-watch --onSuccess \"node ./build/server.js\"",
}
build
用于构建您的应用以准备投放。start
仅用于在制作时启动您的应用。dev
用于编译然后运行/重新运行节点。<强> REMARK:强> 然后可以使用“npm run dev”
运行脚本