在package.json

时间:2017-02-16 09:05:51

标签: node.js typescript npm visual-studio-code tsconfig

编辑 #1 :好像我有一个正常工作的配置,但欢迎所有改进此建议的建议。见答案:https://stackoverflow.com/a/42269408/1155847

原始问题

我目前正在尝试设置我的环境,以便使用我的package.json devDependencies打字稿版本。有什么一些最好的做法,因此它是“编辑器不知道”,最好可以用作npm脚本,例如:npm run tscompile

要明确 - 我可以在使用npm install typescript -g时让一切正常 - 但是我依赖于全球安装的版本,这不是我想要的 - 因为我们希望在团队中工作在升级之前为每个成员设置特定的打字稿版本,所以我们都在同一页面上。

我正在尝试将其设置为这样 - 但npm然后抱怨它不会将“node_modules”识别为内部或外部命令......我认为我必须传递tsconfig。 json to tsc,或者至少给它“工作目录” - 但我甚至无法从我本地下载的npm缓存中启动tsc。

的package.json

{
  "name": "tswithnodejsgettingstarted",
  "version": "1.0.0",
  "description": "",
  "main": "app/index.js",
  "scripts": {
    "start": "node app/index.js",
    "tscompile": "node_modules/typescript/tsc"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "typescript": "2.1.6"
  }
}

tsconfig.json

{
    "compileOnSave": true,
    "compilerOptions": {
        "module": "commonjs",
        "noImplicitAny": true,
        "sourceMap": true,
        "outDir": "app"
    },
    "include": [
        "src/**/*.ts"
    ],
    "exclude": [
        "node_modules"
    ]
}

2 个答案:

答案 0 :(得分:2)

您也可以使用prestart脚本。默认情况下,它在启动命令之前运行(请参阅可以设置here的所有默认脚本)。

  "scripts": {
    "prestart": "npm run tsc",
    "start": "node app/index.js",
    "tsc": "tsc"
  }

答案 1 :(得分:1)

好吧..看起来就像这一样简单(见下文)。在这里回答它,为其他寻找答案的人。或者,如果有更好的解决方案,请告诉我

"tsc": "tsc"内配置package.json之类的脚本。然后运行npm run tsc,它将使用您在本地安装的tsc版本,并发现您的tsconfig.json ofcourse。它没有使用您的全局版本 - 因为我卸载了那个 - 只是在命令行中输入tsc错误。

E.g:

检查repo *我正在玩的地方。

<强>的package.json

{
  "name": "tswithnodejsgettingstarted",
  "version": "1.0.0",
  "description": "",
  "main": "app/index.js",
  "scripts": {
    "start": "npm run tsc && node app/index.js",
    "tsc": "tsc"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "typescript": "2.1.6"
  }
}

* repo:https://github.com/pluralsight-courses/typescript-fundamentals/tree/master/001-GettingStarted