现在只有命令行应用的例子。
现在,应用开发的趋势是命令行接口应用和Web应用。 node.js 和 typescript的崛起所以,这里讨论如何创建纯的TypeScript CLI(Command Line Interface)应用和Web server-side应用。
:: check version
node -v
npm -v
:: Update npm to the latest version
npm install npm@latest -g
npm -v
:: install typescript
npm install -g typescript
:: check version
tsc -v
mkdir myproj
cd myproj
npm init
这个命令会在当前目录创建一个项目配置文件:package.json 内容类似如下:
{
"name": "myproj",
"version": "1.0.0",
"description": "",
"main": "App.ts",
"scripts": {
"test": "ts-node .\\src\\App.ts name address"
},
"keywords": [
"my",
"example"
],
"author": "your name",
"license": "MIT",
}
class Startup {
public static main(): number {
var args = process.argv;
args.splice(0, 2);
console.log(args);
return 0;
}
}
Startup.main();
这时,npm会下载@types/node到./node_modules下,package.json文件会增加下面内容:
{
"devDependencies": {
"@types/node": "^8.0.33"
}
}
好吧。我还不会。
tsconfig.json是Type Script项目的配置文件。主要包含如下信息:
{
"include": [
"src/**/*"
],
"exclude": [
"node_modules",
"../**/*.spec.ts"
]
}
"compilerOptions": {
"emitDecoratorMetadata": true, // for typeorm
"experimentalDecorators": true, // for typeorm
"lib": ["esnext"],
"strict": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"pretty": true,
"target": "esnext",
"module": "commonjs", // work with node.js only
"moduleResolution": "node"
}
npm提供了丰富的功能,可以做很多事情,包括:
%AppData%\npm
%AppData%\npm\node_modules
%AppData%\npm-cache
.\node_modules
npm shrinkwrap
命令产生,完完全全和package-lock.json内容一样,但是会被发布。:: 问一系列问题,产生一个package.json
npm init [-f|--force|-y|--yes]
init的参数: -f|--force|-y|--yes: 没有提示,产生一个默认的package.json文件。
:: 安装当前项目的依赖包.
npm install (with no args, in package dir)
:: 安装包
npm install [<@scope>/]<name>
npm install [<@scope>/]<name>@<tag>
npm install [<@scope>/]<name>@<version>
npm install [<@scope>/]<name>@<version range>
:: 安装一个online的包
npm install <git-host>:<git-user>/<repo-name>
:: 安装一个online的包
npm install <git repo url>
:: 安装一个已下载的包
npm install <tarball file>
:: 安装一个online的包
npm install <tarball url>
:: 安装一个已经下载并解开(或者是没有打包)的包,<folder>是包的位置。
npm install <folder>
install的别名: npm i install的参数: -P|--save-prod: 默认,并保存到项目的dependencies配置中。 -D|--save-dev: 并保存到项目的devDependencies配置中。 -O|--save-optional: 并保存到项目的optionalDependencies配置中。 -E|--save-exact: 使用精确的版本信息保存 -B|--save-bundle: 并保存到项目的bundleDependencies配置中。 --no-save: 不保存到项目配置中。 -g|--global: 安装包到global位置。 -f|--force: 强制重新安装。
npm run-script <command> [--silent] [-- <args>...]
:: or alias
npm run <command> [--silent] [-- <args>...]
参照Integrating with Build Tools