Настройка проекта Typescript (первый раз)
Во-первых, я не видел четкого ответа после нескольких часов поиска в Google, извините, если я что-то упустил.
Быстрая версия С Typescript, как я могу двигаться node_modules
в outDir
или я поступаю неправильно?
Длинная версия Я пытаюсь начать работу с машинописью, и настройка проекта кажется самой сложной частью. Моя цель - иметь мой исходный код в src/server
и мой вывод будет в bin/server
Вот мой tsconfig.json для справки:
{
"compilerOptions": {
"allowJs": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"module": "commonjs",
"moduleResolution": "node",
"noEmitOnError": true,
"noImplicitAny": false,
"outDir": "../../bin",
"sourceMap": true,
"suppressImplicitAnyIndexErrors": true,
"target": "ES2015",
"typeRoots": [
"../../node_modules/@types/"
]
},
"exclude": [
"bin/*",
"node_modules/*",
"public/*",
"**/*-aot.ts"
]
}
Вот структура каталогов:
Project
+-/bin
| +/server
| +-server.js
+-/src
+/server
+-server.ts
+-package.json
+-/node_modules
+-[...]
+-/typings
+-[...]
Компилировать из ~/Project
я использую tsc -p src/server
бум у нас есть bin/server/server.js
,
Для запуска я использую против кода, вот launch.json
:
{
"version": "0.2.0",
"configurations": [{
"outFiles": [ "${workspaceRoot}/bin/server/**/*.js" ],
"cwd": "${workspaceRoot}/bin/server",
"name": "Launch",
"type": "node",
"request": "launch",
"program": "${workspaceRoot}/src/server/server.ts",
"sourceMaps": true,
"env": {
"NODE_ENV": "development",
"SERVER": "http://localhost:8080"
}
}]
}
Я получаю ошибку Error: Cannot find module 'express'
модуль установлен в src/server/node_modules/express
так что я думаю, мне нужно двигаться node_modules
в bin/server
также? Это не кажется правильным.
Супер новичок в машинописи (начал сегодня) спасибо, что нашли время, чтобы прочитать мой длинный пост.
PS: Предположим, все на последней версии.
1 ответ
Ответ найден!
Я переместил tsconfig.json в src/server/
и побежал tsc -p src/server
из корня проекта.
Обновленный tsconfig.json для справки:
{
"compilerOptions": {
"allowJs": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"module": "commonjs",
"moduleResolution": "node",
"noEmitOnError": true,
"noImplicitAny": false,
"outDir": "../../bin",
"sourceMap": true,
"suppressImplicitAnyIndexErrors": true,
"target": "ES2015",
"typeRoots": ["node_modules/@types/"]
},
"exclude": [
"bin/*",
"node_modules/*",
"public/*",
"**/*-aot.ts"
]
}