Skip to content

Commit 3ceadd4

Browse files
committed
添加TypeScript和Vue
1 parent e30a40a commit 3ceadd4

File tree

4 files changed

+85
-1
lines changed

4 files changed

+85
-1
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
node_modules
22
webpack.sublime-project
33
webpack.sublime-workspace
4+
.history

README.md

+9-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,11 @@
11
# webpack指南
22

3-
<http://webpack.toobug.net>
3+
<http://webpack.toobug.net>
4+
5+
本指南由TooBug根据自己的理解和使用经验编写,初衷是为了方便国内的前端开发者更好地接触和使用webpack这个强大的前端打包工具。
6+
7+
初次提交诞生于2015年10月20日,彼时webpack还是1.x,国内中文文档相当少,而官方英文文档也语焉不详,饱受诟病,故诞生此指南。
8+
9+
然而由于个人精力方面的原因,本指南未能如期完成。时下webpack的资料已经遍地开花,随着webpack 2的发布,一方面官方文档也趋于完善,另一方面很多配置和用法已不再兼容,因此本指南的部分内容可能存在不准确的情况,请读者自行鉴别。
10+
11+
另外,本指南有可能长期弃坑……

zh-cn/SUMMARY.md

+1
Original file line numberDiff line numberDiff line change
@@ -32,3 +32,4 @@
3232
* [Gulp](chapter5/gulp.md)
3333
* [第六章 杂谈](chapter6/README.md)
3434
* [jQuery的引入](chapter6/jquery.md)
35+
* [TypeScript和Vue](chapter6/ts-and-vue.md)

zh-cn/chapter6/ts-and-vue.md

+74
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
# TypeScript与Vue
2+
3+
> 本文适用于webpack 2+
4+
5+
## TypeScript(ts-loader)
6+
7+
要使用TypeScript的话,只需要将文件名后缀改成`.ts`,并引入`ts-loader`进行处理即可。
8+
9+
例如我们有一个TS文件:
10+
11+
```typescript
12+
function a(num: number){
13+
return num+1;
14+
}
15+
16+
console.log(a(5));
17+
```
18+
19+
只需要在`webpack.config.js`中配置一下(注意这是webpack 2+的配置):
20+
21+
```javascript
22+
module:{
23+
rules:[{
24+
test: /\.ts$/,
25+
loader:'ts-loader',
26+
}]
27+
}
28+
```
29+
30+
即可。
31+
32+
## Vue单文件组件(vue-loader)
33+
34+
Vue为我们提供了单文件组件的写法,例如下面的`test.vue`
35+
36+
```vue
37+
<style>
38+
div{
39+
color:red;
40+
}
41+
</style>
42+
<template>
43+
<div>{{message}}</div>
44+
</template>
45+
<script>
46+
import Vue from 'vue/dist/vue.esm.js';
47+
new Vue({
48+
data: function(){
49+
return {
50+
message: 'hello'
51+
}
52+
}
53+
});
54+
</script>
55+
```
56+
57+
这种写法需要使用`vue-loader`转换成纯JS文件才可以正常在浏览器中运行。和使用`ts-loader`类似,只要使用`vue-loader`处理即可,这里就不再演示。唯一值得注意的是`vue-loader`会需要同时安装几个模块,如果弄不清楚的话,安装`vue-loader`的时候留意一下npm的输出,把需要的模块都装上就可以了。
58+
59+
## TypeScript + Vue
60+
61+
基本用法就是同时加上`ts-loader``vue-loader`。但是`ts-loader`需要加上两个选项:
62+
63+
```javascript
64+
options: {
65+
transpileOnly: true,
66+
appendTsSuffixTo: [/\.vue$/],
67+
}
68+
```
69+
70+
`transpileOnly`的含义是指让`ts-loader`只做转译。什么意思呢?就是不加这个选项的话,它会把转义的结果写入到文件中,而不是在内存中由webpack来处理,这会导致后续loader无法处理`ts-loader`的结果。所以加上`transpileOnly`让它按webpack的操作来,这样后续loader就可以继续处理。
71+
72+
`appendTsSuffixTo`的含义是碰到`.vue`结尾的文件时,加上`.ts`的后缀,这样`ts-loader`就会去处理`.vue`文件中的ts代码。
73+
74+
另外在使用TypeScript编写Vue代码时,可能会碰到一些类型上的问题,可以参见Vue的官方文档:<https://vuejs.org/v2/guide/typescript.html>

0 commit comments

Comments
 (0)