打字稿项目设置(第一次)

时间:2016-12-20 22:50:30

标签: javascript visual-studio-code transpiler vscode-settings typescript2.1

首先,经过数小时的谷歌搜索后,我没有看到明确的答案,对不起,如果我忽略了什么。

快速版 使用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

要运行我正在使用vs代码,这里是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 个答案:

答案 0 :(得分:1)

找到答案!

我将tsconfig.json移至(?P<foo>...)并从项目根目录运行src/server/

更新了tsconfig.json以供参考:

tsc -p src/server