我想安装并运行Typescript(即没有全局依赖项)。
这是我的package.json文件:
Rect2
然后我跑了:
{
"name": "foo",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"tsc": "tsc"
},
"devDependencies": {
"typescript": "^1.8.10"
},
"author": "",
"license": "ISC"
}
然而,当我运行第二个命令时,我得到很多错误,它无法显示所有错误。大部分内容如下:
npm install
npm run tsc
在npm-debug.log中,我得到:
../foo/node_modules/typescript/lib/lib.d.ts(5015,5): error TS2300: Duplicate identifier 'webkitTransformOrigin'.
../foo/node_modules/typescript/lib/lib.d.ts(5016,5): error TS2300: Duplicate identifier 'webkitTransformStyle'.
../foo/node_modules/typescript/lib/lib.d.ts(5017,5): error TS2300: Duplicate identifier 'webkitTransition'.
../foo/node_modules/typescript/lib/lib.d.ts(5018,5): error TS2300: Duplicate identifier 'webkitTransitionDelay'.
../foo/node_modules/typescript/lib/lib.d.ts(5019,5): error TS2300: Duplicate identifier 'webkitTransitionDuration'.
../foo/node_modules/typescript/lib/lib.d.ts(5020,5): error TS2300: Duplicate identifier 'webkitTransitionProperty'.
请注意,删除程序包然后全局安装typescript可以解决问题。但是,如果我再使用npm install再次安装本地软件包,则会重新解决问题。
答案 0 :(得分:32)
我花了一段时间才弄清楚这个问题的解决方案 - 它在原始问题中。您需要script
在tsc
文件中调用package.json
,以便运行:
npm run tsc
在传入选项之前包含--
(或者只是将它们包含在脚本中):
npm run tsc -- -v
以下是package.json
的例子:
{
"name": "foo",
"scripts": {
"tsc": "tsc"
},
"dependencies": {
"typescript": "^1.8.10"
}
}
答案 1 :(得分:21)
要在项目中将TypeScript本地安装为开发依赖项,可以使用--save-dev
密钥
npm install --save-dev typescript
它还会将打字稿写入package.json
您还需要一个tsconfig.json
文件。例如
{
"compilerOptions": {
"target": "ES5",
"module": "system",
"moduleResolution": "node",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": false,
"noImplicitAny": false
},
"exclude": [
"node_modules",
".npm"
]
}
有关tsconfig的更多信息,请参阅此处http://www.typescriptlang.org/docs/handbook/tsconfig-json.html
答案 2 :(得分:16)
从npm 5.2.0开始,通过以下方式在本地安装
npm i typescript --save-dev
...您不再需要scripts
的{{1}}部分中的条目-您现在可以使用npx运行编译器:
package.json
现在,您不必每次要使用不同的参数进行编译时都更新package.json文件。
答案 3 :(得分:7)
你需要告诉npm“tsc”作为本地项目包存在(通过package.json中的“scripts”属性),然后通过npm run tsc
运行它。要做到这一点(至少在Mac上)我必须在包中添加实际编译器的路径,比如
{
"name": "foo"
"scripts": {
"tsc": "./node_modules/typescript/bin/tsc"
},
"dependencies": {
"typescript": "^2.3.3",
"typings": "^2.1.1"
}
}
之后,您可以运行任何TypeScript命令,如npm run tsc -- --init
(参数位于第一个--
之后)。
答案 4 :(得分:2)
tsc
需要编译配置文件或.ts(x)文件。
要解决这两个问题,请使用以下内容创建名为tsconfig.json
的文件:
{
"compilerOptions": {
"outFile": "../../built/local/tsc.js"
},
"exclude": [
"node_modules"
]
}
此外,使用此
修改您的npm运行tsc --config /path/to/a/tsconfig.json
答案 5 :(得分:1)
请注意,如果您使用的是typings
,请执行以下操作:
rm -r typings
typings install
如果你做的角度2教程使用这个:
rm -r typings
npm run postinstall
npm start
如果postinstall
命令不起作用,请尝试全局安装打字:
npm install -g typings
你也可以尝试以下而不是postinstall:
typings install
你应该修复这个问题!
答案 6 :(得分:1)
您现在可以使用ts-node,这使您的生活变得如此简单
npm install -D ts-node
npm install -D typescript
ts-node script.ts