Skip to content

Commit 6905f95

Browse files
committed
尝试ts开发
1 parent c0a7ed1 commit 6905f95

File tree

8 files changed

+115
-6
lines changed

8 files changed

+115
-6
lines changed

package.json

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,11 @@
2020
"iview": "^2.4.0",
2121
"vue": "^2.4.4",
2222
"vue-router": "^2.7.0",
23-
"vuex": "^2.4.1"
23+
"vuex": "^2.4.1",
24+
"sinon": "^4.0.1"
2425
},
2526
"devDependencies": {
27+
"@types/node": "^8.0.34",
2628
"autoprefixer": "^7.1.2",
2729
"babel-core": "^6.22.1",
2830
"babel-eslint": "^7.1.1",
@@ -62,7 +64,7 @@
6264
"karma-mocha": "^1.3.0",
6365
"karma-phantomjs-launcher": "^1.0.2",
6466
"karma-phantomjs-shim": "^1.4.0",
65-
"karma-sinon-chai": "^1.3.1",
67+
"karma-sinon-chai": "^1.3.2",
6668
"karma-sourcemap-loader": "^0.3.7",
6769
"karma-spec-reporter": "0.0.31",
6870
"karma-webpack": "^2.0.2",
@@ -77,8 +79,9 @@
7779
"selenium-server": "^3.0.1",
7880
"semver": "^5.3.0",
7981
"shelljs": "^0.7.6",
80-
"sinon": "^4.0.1",
8182
"sinon-chai": "^2.8.0",
83+
"ts-loader": "^2.3.7",
84+
"typescript": "^2.5.3",
8285
"url-loader": "^0.5.8",
8386
"vue-loader": "^13.0.4",
8487
"vue-style-loader": "^3.0.1",

src/App.vue

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,11 @@
44
</div>
55
</template>
66

7-
<script>
8-
export default {
7+
<script lang="ts">
8+
import * as Vue from 'vue';
9+
export default Vue.extend({
910
name: 'app'
10-
};
11+
});
1112
</script>
1213

1314
<style scoped>

src/main.ts

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
// The Vue build version to load with the `import` command
2+
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
3+
import * as Vue from 'vue';
4+
let iView = require('iview');
5+
import 'iview/dist/styles/iview.css';
6+
import './common/reset.css';
7+
import './common/index.css';
8+
import router from './router';
9+
10+
Vue.use(iView);
11+
12+
Vue.config.productionTip = false;
13+
14+
router.beforeEach((to, from, next) => {
15+
iView.LoadingBar.start();
16+
let title = to.meta.title;
17+
title = title ? title + ' - Home' : 'iView demo';
18+
window.document.title = title;
19+
next();
20+
});
21+
22+
router.afterEach(() => {
23+
iView.LoadingBar.finish();
24+
window.scrollTo(0, 0);
25+
});
26+
27+
/* eslint-disable no-new */
28+
new Vue({
29+
el: '#app',
30+
router,
31+
template: '<App/>',
32+
components: {
33+
App: (resolve) => require(['./App'], resolve)
34+
}
35+
});
36+
37+
38+
// interface NodeRequire extends NodeRequireFunction {
39+
// resolve(id: string): string;
40+
// cache: any;
41+
// extensions: NodeExtensions;
42+
// main: NodeModule | undefined;
43+
// }

src/router/index.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import * as Vue from 'vue';
2+
import * as VueRouter from 'vue-router';
3+
let RouterConfig = require('./config');
4+
5+
Vue.use(VueRouter);
6+
7+
// 路由配置
8+
export default new VueRouter(RouterConfig);

src/typings/base.d.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
// export const require: (url: string) => any;
2+
//export const require: (url: string) => any;
3+
4+
// export declare var require: NodeRequire | ;
5+
6+
7+
interface NodeRequireFunction {
8+
(id: string| ( string[],resolve?: (component: any) => void): any;
9+
}
10+
11+
// export type AsyncComponent = (
12+
// resolve: (component: Component) => void,
13+
// reject: (reason?: any) => void
14+
// ) => Promise<Component | EsModuleComponent> | Component | void;

src/vue-shims.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 * as Vue from "vue";
3+
export default Vue;
4+
}

tsconfig.json

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"compilerOptions": {
3+
"outDir": "./built/",
4+
"sourceMap": true,
5+
"strict": true,
6+
"module": "es2015",
7+
"moduleResolution": "node",
8+
"target": "es5"
9+
},
10+
"include": [
11+
"./src/**/*"
12+
]
13+
}

tslint.json

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
{
2+
"defaultSeverity": "error",
3+
"extends": [
4+
"tslint:recommended"
5+
],
6+
"jsRules": {},
7+
"rules": {
8+
"quotemark": [
9+
true,
10+
"single"
11+
],
12+
"indent": [
13+
true
14+
],
15+
"interface-name": [
16+
false
17+
],
18+
"arrow-parens": false,
19+
// Pending fix for shorthand property names.
20+
"object-literal-sort-keys": false
21+
},
22+
"rulesDirectory": []
23+
}

0 commit comments

Comments
 (0)