内容简介:上节:手动配置vue-cli下上节目录:
上节:手动配置vue-cli下
上节目录:
本节给之前配的vue-cli集成ts,让它支持ts + vue的开发。
首先修改build/webpack.base.js:
const HTMLPlugin = require('html-webpack-plugin');
const VueLoaderPlugin = require('vue-loader/lib/plugin');
const {resolve} = require('path');
module.exports = {
entry: resolve(__dirname, '../src/main.ts'),
resolve: {
// 这里可以配置些文件后缀,用于写路径时可省略后缀(会影响打包速度,不建议配太多)
extensions: [ '.tsx', '.ts', '.js', 'vue', 'less' ]
},
module: {
rules: [{
// 识别.vue文件
test: /\.vue$/,
loader: 'vue-loader'
}, {
// 识别.ts或.tsx文件
test: /\.tsx?$/,
use: 'ts-loader'
}, {
// 用于识别vue文件中的script块
test: /\.js$/,
loader: 'babel-loader',
}, {
test: /\.(gif|jpg|jpeg|png|svg|ttf|woff)$/,
loader: 'url-loader'
}]
},
plugins: [
new HTMLPlugin({
template: resolve(__dirname, '../index.html')
}),
// 将定义过的其它规则复制并应用到 .vue 文件里相应语言的块
new VueLoaderPlugin()
]
};
在rule里加了ts规则后,通过VueLoaderPlugin也能将其用于.vue文件
然后根目录下新建tsconfig.json:
{
"compilerOptions": {
"target": "es5",
"module": "esNext",
// "strict": true,
"strictPropertyInitialization": false,
"strictNullChecks": false,
"noImplicitAny": false,
"jsx": "preserve",
"importHelpers": true,
"moduleResolution": "node",
"experimentalDecorators": true,
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"sourceMap": true,
"baseUrl": ".",
/*"types": [
"webpack-env"
],*/
"paths": {
"@/*": [
"src/*"
],
"*": [
"src/*"
]
},
"lib": [
"esNext",
"dom",
"dom.iterable",
"scripthost",
"es2015.promise"
]
},
"include": [
"src/**/*.ts",
"src/**/*.tsx",
"src/**/*.vue",
"tests/**/*.ts",
"tests/**/*.tsx"
],
"exclude": [
"node_modules"
]
}
这是ts的配置文件,不熟的话可以复制上面的,具体选项参考 官网
然后要给vue写一下类型声明,src下新建shims-vue.d.ts
src/shims-vue.d.ts:
declare module '*.vue' {
import Vue from 'vue'
export default Vue
}
如果你要写tsx语法的话再新建shims-tsx.d.ts
src/shims-tsx.d.ts:
import Vue, { VNode } from 'vue'
declare global {
namespace JSX {
// tslint:disable no-empty-interface
interface Element extends VNode {}
// tslint:disable no-empty-interface
interface ElementClass extends Vue {}
interface IntrinsicElements {
[elem: string]: any
}
}
}
然后改一下App.vue,把ts部分改成外部引入的:
src/App.vue:
<template>
<div class="app">
<h1>hello {{msg}}</h1>
</div>
</template>
<script lang="ts" src="./App.ts"></script>
<style scoped lang="less">
.app{
h1{
color: #f60;
}
}
</style>
src下新建App.ts:
import { Component, Vue } from "vue-property-decorator";
@Component({
name: "App"
})
export default class App extends Vue {
msg = 'webpack4'
}
将src/main.js改成main.ts, 现在目录大致如下:
然后安装依赖:
npm i typescript ts-loader vue-class-component vue-property-decorator -D
然后npm run dev,打开浏览器:
试下npm run build应该也能成功打包:
下节:vue-cli与vue-loader介绍(待更新)
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 苹果:今年晚些时候将推全新手动安装iOS 12配置描述文件流程
- webpack4.29.x成神之路(二十三) 手动配置vue-cli下
- webpack4.29.x成神之路(二十二) 手动配置vue-cli上
- 手动升级Coreos版本
- mongodb操作的模块手动封装
- 越狱手记:手动编译安装 Electra
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Visual C#2005从入门到精通
夏普 / 周靖 / 清华大学出版社 / 2006-6 / 49.00元
《Visual C#2005从入门到精通/微软技术丛书》:微软技术丛书系列之一,建议一读! Microsoft Visual C#功能强大、使用简单。本书全面介绍了如何利用Visual Studio 2005和.NET Framework来进行C#编程。作者将C#的各种特性娓娓道来,以范例导航的方式,通过大量的练习引导读者逐步构建Windows窗体应用程序,访问Microsoft SQL Serv......一起来看看 《Visual C#2005从入门到精通》 这本书的介绍吧!