数据分析项目实战,Webpack5 搭建 Vue3 + TS 项目(1),移动端web开发入门

“check-types”: “tsc --watch”,

添加 babel 解析 typescript

# 安装以下依赖 --save-dev

# webpack loader

babel-loader

# babel 核心

@babel/core

# 智能转换成目标运行环境代码

@babel/preset-env

# 解析 typescript 的 babel 预设

@babel/preset-typescript

# polyfill

@babel/plugin-transform-runtime

# 支持 ts 类的写法

@babel/plugin-proposal-class-properties

# 支持三点展开符

@babel/plugin-proposal-object-rest-spread

# 安装以下依赖 --save

@babel/runtime

@babel/runtime-corejs3

“core-js”: “^3.11.0”,

删除 ts-loader, 添加 babel-loader

{

test: /.(t|j)s$/,

exclude: /node_modules/,

use: [

{

loader: ‘babel-loader’,

},

],

}

项目根目录添加 babel 配置文件 babel.config.js

module.exports = {

presets: [

[

‘@babel/preset-env’,

{

useBuiltIns: ‘usage’, // 按需引入 polyfill

corejs: 3,

},

],

[

‘@babel/preset-typescript’, // 引用Typescript插件

{

allExtensions: true, // 支持所有文件扩展名,否则在vue文件中使用ts会报错

},

],

],

plugins: [

[

‘@babel/plugin-transform-runtime’,

{

corejs: 3,

},

],

‘@babel/proposal-class-properties’,

‘@babel/proposal-object-rest-spread’,

],

}

4. 代码规范


项目中代码规范集成了 EditorConfig, Prettier, ESLint, Husky, Lint-staged,以及如何解决 Prettier 和 ESLint 的冲突的问题,具体实现可以参考 《从 0 开始手把手带你搭建一套规范的 Vue3.x 项目工程环境》这篇文章,讲的很详细这里不再赘述。

5. 提交规范


利用 inquirer 选择配置好的提交类型,以及配合 commitlint 实现 commit 检查

npm i inquirer shelljs @commitlint/{cli,config-conventional} -D

添加 package.json 的 script :

“commitlint”: “commitlint -e”,

“commit”: “node commit/git-commit.js”

创建 commit/git-commit.js 文件

const shell = require(‘shelljs’)

const inquirer = require(‘inquirer’)

const prompsConfig = {

ciType: [

{

type: ‘list’,

name: ‘type’,

message: ‘请选择本次提交的类型:’,

choices: [

{

name: ‘引入新特性’,

value: ‘feat’,

},

{

name: ‘改进代码的结构格式/样式’,

value: ‘style’,

},

{

name: ‘修复 bug’,

value: ‘fix’,

},

{

name: ‘提升性能’,

value: ‘perf’,

},

{

name: ‘删除代码或文件’,

value: ‘delete’,

},

{

name: ‘其他修改, 比如改变构建流程、或者增加依赖库、工具等’,

value: ‘chore’,

},

{

name: ‘重构’,

value: ‘refactor’,

},

{

name: ‘撰写文档’,

value: ‘docs’,

},

{

name: ‘增加测试’,

value: ‘test’,

},

{

name: ‘更新打包文件’,

value: ‘build’,

},

{

name: ‘初次提交’,

value: ‘init’,

},

{

name: ‘发布/版本标签’,

value: ‘release’,

},

{

name: ‘部署功能’,

value: ‘deploy’,

},

{

name: ‘代码回滚’,

value: ‘revert’,

},

{

name: ‘CI持续集成修改’,

value: ‘ci’,

},

],

},

],

ciMsg: {

type: ‘input’,

name: ‘msg’,

message: ‘请输入提交文本:’,

validate: function (value) {

if (value) {

return true

}

return ‘文本必须输入!’

},

},

}

async function gitCommit() {

let { type } = await inquirer.prompt(prompsConfig.ciType)

let { msg } = await inquirer.prompt(prompsConfig.ciMsg)

shell.exec(git commit -m "${type}: ${msg}", function () {

console.log(\n提交脚本: git commit -m "${type}: ${msg}")

})

}

gitCommit()

配置 commitlint 类型,创建 commitlint.config.js 文件:

module.exports = {

extends: [‘@commitlint/config-conventional’],

rules: {

‘type-enum’: [2, ‘always’, [

‘build’, ‘chore’, ‘ci’, ‘feat’, ‘docs’, ‘fix’, ‘perf’, ‘revert’, ‘refactor’, ‘style’, ‘test’, ‘init’, ‘build’, ‘release’, ‘delete’

]],

}

};

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)
img

最后

CodeChina开源项目:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!

AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算

321763202)]

最后

CodeChina开源项目:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

[外链图片转存中…(img-o37Pq5qL-1712321763202)]

一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!

AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算

  • 18
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
为了在Vue 3项目中使用TypeScript和Webpack,并且正确地生成.d.ts声明文件,你需要按照以下步骤进行配置: 1. 安装依赖: ```bash npm install --save-dev typescript ts-loader vue-loader@next @types/vue @vue/compiler-sfc ``` 2. 创建`tsconfig.json`文件: 在项目根目录下创建一个名为`tsconfig.json`的文件,并添加以下内容: ```json { "compilerOptions": { "target": "esnext", "module": "esnext", "strict": true, "jsx": "preserve", "moduleResolution": "node", "resolveJsonModule": true, "esModuleInterop": true, "lib": ["esnext", "dom"], "skipLibCheck": true, "forceConsistentCasingInFileNames": true }, "include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.vue", "tests/**/*.ts", "tests/**/*.tsx"] } ``` 3. 配置Webpack: 在Webpack配置文件中,添加对TypeScript和Vue文件的处理规则。例如,如果你使用的是`webpack.config.js`文件,可以按照以下示例进行配置: ```javascript const path = require('path'); module.exports = { // ...其他配置 resolve: { extensions: ['.js', '.ts', '.vue'], alias: { '@': path.resolve(__dirname, 'src') } }, module: { rules: [ { test: /\.tsx?$/, loader: 'ts-loader', exclude: /node_modules/, options: { appendTsSuffixTo: [/\.vue$/] } }, { test: /\.vue$/, loader: 'vue-loader' } ] }, // ...其他配置 }; ``` 4. 添加Vue文件声明: 在项目的`src`目录中,为Vue文件添加一个`.d.ts`的同名文件。例如,对于`HelloWorld.vue`组件,创建一个名为`HelloWorld.vue.d.ts`的文件,并添加以下内容: ```typescript declare module '*.vue' { import { ComponentOptions } from 'vue'; const componentOptions: ComponentOptions; export default componentOptions; } ``` 5. 构建项目: 运行Webpack构建命令,以启动TypeScript编译和生成声明文件: ```bash npm run build ``` 如果一切顺利,你的Vue 3 + TypeScript项目应该可以成功编译,并且在构建过程中会生成相应的.d.ts声明文件。 希望以上步骤可以帮助你配置Vue 3 + TypeScript + Webpack项目的.d.ts声明文件。如果有任何问题,请随时追问!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值