Skip to content

Commit 14c217f

Browse files
committed
feat: support typescipt
1 parent a5b19c5 commit 14c217f

File tree

15 files changed

+151
-31
lines changed

15 files changed

+151
-31
lines changed

.eslintrc.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,8 @@ module.exports = {
77
'eslint-config-team-spec',
88
'eslint-config-team-spec/prettier',
99
'eslint-config-team-spec/vue',
10-
]
10+
],
11+
rules: {
12+
'vue/require-direct-export': 'off',
13+
}
1114
}

bin/generate.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ echo "进入 `pwd` 目录"
9393

9494
vue="$1.vue";
9595
if [ ! -f $vue ]; then
96-
echo "<template><div class="$1">$vue</div></template>" >> $vue;
96+
echo "<template><div class=\"$1\">$vue</div></template>" >> $vue;
9797
else
9898
echo "$vue 已存在"
9999
fi

build/webpack.base.js

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,6 @@ module.exports = merge(webpackCSSConfig, {
2525
test: /\.vue$/,
2626
loader: 'vue-loader',
2727
},
28-
{
29-
test: /\.ts$/,
30-
loader: 'ts-loader',
31-
options: { appendTsSuffixTo: [/\.vue$/] },
32-
},
3328
{
3429
test: /\.js$/,
3530
loader: 'babel-loader',

build/webpack.css.js

Lines changed: 31 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -4,28 +4,36 @@ const TARGET = process.env.npm_lifecycle_event;
44

55
module.exports = {
66
module: {
7-
rules: [{
8-
test: /\.scss$/,
9-
use: [
10-
{
11-
loader: TARGET.indexOf('storybook') !== -1
12-
? 'vue-style-loader'
13-
: MiniCssExtractPlugin.loader,
14-
options: {
15-
esModule: true,
16-
}
17-
},
18-
{
19-
loader: 'css-loader',
20-
},
21-
"postcss-loader",
22-
{
23-
loader: 'sass-loader',
24-
options: {
25-
prependData: `$color: green;`
26-
}
27-
}
28-
],
29-
}],
7+
rules: [
8+
{
9+
test: /\.ts$/,
10+
loader: 'ts-loader',
11+
options: { appendTsSuffixTo: [/\.vue$/] },
12+
},
13+
{
14+
test: /\.scss$/,
15+
use: [
16+
{
17+
loader:
18+
TARGET.indexOf('storybook') !== -1
19+
? 'vue-style-loader'
20+
: MiniCssExtractPlugin.loader,
21+
options: {
22+
esModule: true,
23+
},
24+
},
25+
{
26+
loader: 'css-loader',
27+
},
28+
'postcss-loader',
29+
{
30+
loader: 'sass-loader',
31+
options: {
32+
prependData: `$color: green;`,
33+
},
34+
},
35+
],
36+
},
37+
],
3038
},
3139
};

components/shims-vue.d.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
declare module '*.vue' {
2+
import Vue from 'vue';
3+
export default Vue;
4+
}

components/text/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# text

components/text/__tests__/index.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import { mount } from '@vue/test-utils';
2+
import Component from '../src/text.vue';
3+
4+
describe('文字', () => {
5+
test('是一个正确的 Vue 实例', () => {
6+
const wrapper = mount(Component);
7+
expect(wrapper.isVueInstance()).toBeTruthy();
8+
});
9+
});

components/text/index.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import Text from './src/text.vue';
2+
3+
Text.install = function(Vue) {
4+
Vue.component(Text.name, Text);
5+
};
6+
7+
export default Text;

components/text/src/style.scss

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.text { color: red }

components/text/src/text.vue

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<template>
2+
<div class="text">{{ count }}</div>
3+
</template>
4+
5+
<script lang="ts">
6+
import Vue from 'vue';
7+
export default Vue.extend({
8+
name: 'demoText',
9+
data() {
10+
return {
11+
count: 1,
12+
};
13+
},
14+
});
15+
</script>

0 commit comments

Comments
 (0)