TypeScript + Webpack 环境搭建
TypeScript + Webpack 环境搭建步骤
- 安装Node.js
- 安装npm
- 创建一个npm项目
- 安装typescript,配置ts
- 安装webpack,配置webpack
初始化一个npm项目
npm init
将在项目根目录下创建package.json文件。文件目录结构如下
ts3-demo
|- src
|- index.ts
|- package.json
全局安装typescript命令:
npm install -g typescript
可以使用以下命令来查看你的机器中是否安装了Node.js\ npm \ typescript,以及安装的版本。
node -v
npm -v
tsc -v
typescript compiler
typescript的编译器叫做 tsc。
假设有个src/index.ts 文件,将它编译成index.js,可以使用命令:
tsc src/index.ts --target es5
或者
tsc src/index.ts --target es3
启动观察模式,当ts文件更改之后,自动进行编译。
tsc src/index.ts --watch --target es5
// index.ts
export default class Index {
title = 'Hello';
name = 'Lori';
}
编译后结果
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var Index = /** @class */ (function () {
function Index() {
this.title = 'Hello';
this.name = 'Lori';
}
return Index;
}());
exports.default = Index;
通常不会在terminal中敲命令来编译,而是在项目的根路径下,建一个json配置文件 tsconfig.json,来配置这些编译选项。
初始化tsconfig.json的命令:
tsc --init
然后在terminal中使用tsc命令,会发现项目中所有ts文件都被编译成了js文件。
tsc
配置tsconfig.json
{
"compileOnSave": false,
"compilerOptions": {
"outDir": "./dist/out-tsc",
"sourceMap": true,
"declaration": false,
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es5",
"typeRoots": [
"node_modules/@types"
],
"lib": [
"es2017",
"dom"
]
}
}
安装Webpack
npm install webpack webpack-cli --save-dev
安装ts-loader
npm install ts-loader --save-dev
安装Webpack插件 html-webpack-plugin
用于自动生成index.html文件。
npm install html-webpack-plugin --save-dev
配置webpack.config.ts
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
mode: "development",
devtool: "inline-source-map",
entry: "./src/index.ts",
output: {
path: __dirname + '/dist',
filename: '[name].bundle.js'
},
resolve: {
extensions: ['.ts', '.tsx', '.js']
},
plugins: [
new HtmlWebpackPlugin({
title: 'index'
})
],
module: {
rules: [
{
test: /\.tsx?$/,
use: 'ts-loader',
exclude: /node_modules/
}
]
},
devServer: {
contentBase: path.join(__dirname, 'dist'),
compress: true,
historyApiFallback: true,
hot: true,
}
}
想要在debug时生成相应的map文件,注意两点:
tsconfig.json中 sourceMap 设置为 truewebpack.config.ts中 devtool: "inline-source-map"
配置package.json 添加命令
"scripts": {
"start": "./node_modules/.bin/webpack-dev-server",
"build": "./node_modules/.bin/webpack",
"test": "echo \"Error: no test specified\" && exit 1"
},
运行npm run build 进行编译。
文件目录结构如下
ts3-demo
|-dist
|- index.html
|- main.bundle.js
|- src
|- index.ts
|- package.json
|- tsconfig.json
|- webpack.config.js
运行npm start 启动本地服务器。
TypeScript + Webpack 环境搭建的更多相关文章
- 第二章 TypeScript 开发环境搭建
Mac OS X 下 TypeScript 开发环境搭建 一.集成开发环境 WebStrom VSCode 二.安装 TypeScript Homebrew(macOS 缺失的软件包管理器) ruby ...
- webpack 环境搭建
Webpack环境搭建 一.安装node 1.node官网下载node并安装----node里面内置了npm所以用在安装npm了 2.命令行输入node -v查看node是否安装成功 二.全局安装we ...
- webpack环境搭建
环境搭建参考:Webpack+vue+element逐步搭建开发环境 webpack入门:http://www.jianshu.com/p/42e11515c10f ----------------- ...
- TypeScript开发环境搭建(Visual studio code)
使用Visual Studio Code搭建TypeScript开发环境 1.TypeScript是干什么的 ? TypeScript是由微软Anders Hejlsberg(安德斯·海尔斯伯格,也是 ...
- reac-native + typescript 的环境搭建
一. RN-TS环境搭建 . 安装RN脚手架 yarn add create-react-native-app -g yarn global add typescript . 创建项目文件夹 crea ...
- webpack环境搭建开发环境,JavaScript面向对象的详解,UML类图的使用
PS:因为所有的设计模式都是基于面向对象来完成的,所以在讲解设计模式之前先来过一下面向对象都有哪些知识点 搭建开发环境 初始化npm环境 下载安装nodejs安装即可,nodejs自带npm管理包,然 ...
- react+es6+webpack环境搭建以及项目入门
前言:拖了这么久,小菜鸟终于开始正式应用react,和es6来开发项目了.之前超喜欢同学的一个博客风格,这里贴一下地址:https://iwenku.net/,PC端是他很久之前做的,最近他重新做了一 ...
- angular2 基于webpack环境搭建
目录结构: angular-quickstart |_ ts |_ app.ts |_ index.ts |_ index.html |_ package.json |_ tsconfig.json ...
- node+webpack环境搭建 vue.js 2.0 基础学习笔记
npm install -g vue //全局安装vue npm install -g webpack //全局安装webpack npm install -g vue-cli //全局安装vue-c ...
随机推荐
- PAT Advanced 1009 Product of Polynomials (25 分)(vector删除元素用的是erase)
This time, you are supposed to find A×B where A and B are two polynomials. Input Specification: Each ...
- 分页控件SSTab
一.分页控件SSTab概述1.作用:采用分页形式查询或编辑数据表中数据.2.添加到控件箱菜单命令:工程 | 部件,选择:Microsoft Tabbed Dialog Control 6.0 (SP6 ...
- redux中间件来执行异步操作
在redux中我们都是执行同步操作,如果我们想要执行异步操作,那么我们就需要依赖到中间件,具体的中间件的概念我就不描述了相信官方文档更详尽.现在就描述下具体的用法,就已我们项目中用到的最多的数据请求为 ...
- 长沙理工大学第十二届ACM大赛-重现赛 B 日历中的数字 (实现)
链接:https://ac.nowcoder.com/acm/contest/1/B来源:牛客网 全屏查看题目 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K,其他 ...
- ocvate常用函数
1.生成矩阵相关 https://www.coursera.org/learn/machine-learning/lecture/9fHfl/basic-operations 1. 初始化矩阵 a = ...
- 错误消息对话框QErrorMessage
继承于 QDialog 样式: 这个复选框的作用:文本框中相同信息时是否再显示 import sys from PyQt5.QtWidgets import QApplication, QWi ...
- Codeforces Round #596 Div1 A~E题解
我好菜啊 A 题意: 定义p-二进制数为2^k-p,给出n和p,求用最小个数的p-二进制数来表示n 1<=n<=10^9,-1000<=p<=1000 题解: 猜结论,答案不会 ...
- 51nod1790 输出二进制数
题目描述 题解 过于真实 LJ卡常题 一个显然的dp: 设f[i][j]表示做完前i个,最后一段为j+1~i的方案(最小值同理) 那么f[i][j]=min(f[i-j-1][k]),其中k~j-1要 ...
- Linux GDB 程序调试工具使用详解
转自 http://www.codeceo.com/article/linux-gdb-tools.html 整理的挺全的 GDB概述 GDB是GNU开源组织发布的一个强大的UNIX下的程序调试 ...
- NPM错误
有时突然报下面错误: 本人经验是IP变了...