当前位置: 首页> 汽车> 车展 > 网络公关在哪些方面能发挥作用_b2c网站是什么_国家免费职业技能培训官网_网站制作需要多少钱

网络公关在哪些方面能发挥作用_b2c网站是什么_国家免费职业技能培训官网_网站制作需要多少钱

时间:2025/7/17 5:40:06来源:https://blog.csdn.net/trayvontang/article/details/143198377 浏览次数: 0次
网络公关在哪些方面能发挥作用_b2c网站是什么_国家免费职业技能培训官网_网站制作需要多少钱

文章目录

  • 简介
  • task
    • 可以配置功能
    • 参数说明
    • task外部程序示例
    • task输入参数示例
    • task内置参数示例
    • 任务依赖关系
  • launch
  • 配置TyepScript的task和launch
  • task.json
    • tsconfig.json
    • launch.json
    • Debug
    • 代码文件
  • 异常情况

简介

vscode非常强大,有很多可以自定义的东西,但是也不容易上手,例如搭建一个新环境是如何配置运行程序。

本篇文章就将详细说明vscode的如何配置任务来完成编译等操作,如何配置launch来debug。

  1. tasks.json:配置和管理自动化任务,如编译、构建、运行脚本…
  2. launch.json:配置调试器,定义调试会话的启动和运行参数

task

可以配置功能

  1. 编译代码:用javac、gcc、tsc编译工具编译代码
  2. 执行脚本:执行shell、Python、bat脚本
  3. 构建项目:用Maven、Make、Gradle等构建工具构建脚本
  4. 其他任务:清理生成文件、打包、上传…

task配置的是命令,所以它可以非常灵活,可以看作是一个执行脚本的快捷方式。

参数说明

参数说明
label任务名称,标识,以便于执行的时候知道是哪一个任务
type任务类型,shell、process、typescript,shell通常是脚本如python、bat、各种命令,process作为独立的进程运行
command执行的命令,gcc、javac、python、ps、echo等命令
args命令的参数,数组
group任务分组,build(构建)、test(测试)
presentation控制任务输出的呈现方式,例如是否显示在终端中,是否清除之前的输出等
problemMatcher配置错误和警告的匹配器,用于从任务输出中解析错误和警告,vscode内置 g c c 、 gcc、 gcceslint
options任务执行的选项,环境变量、当前工作目录等
dependsOn任务依赖,数组[“task-a”,“task-c”] 任务运行前先执行依赖任务
dependsOrder依赖执行顺序,sequence按照"dependsOn任务列表顺序执行
shell配置执行shell终端,cmd、git,如在Windows下不能执行shell脚本,可以配置git来执行

type的一个作用就可以根据文件匹配,例如在ts文件中按F5进行debug,vscode就知道去找type支持ts的task,例如typescript。

默认会去找group配置为kind为build,isDefault为true的task,如果有多个,就会让手动选择。

presentation参数:

  1. echo: 是否输出执行的command,默认ture
  2. reveal: 输出面板控制,never、silent、always, 是否在用户界面显示输出,默认always
  3. focus:显示任务输出的面板是否处于焦点状态,默认false
  4. panel: 面板控制,shared默认,共享; dedicated专用;new每次任务创建新面板
  5. “showReuseMessage”: true-显示重用消息
  6. “clear”: false-不清除之前的输出

vscode 输出面板控制

task外部程序示例

task中也可以单独指定执行shell的终端

{"version": "2.0.0","tasks": [{"label": "task-测试shell","type": "shell","group": {"kind": "build","isDefault": true,},"command": "ls","args": ["-al"],"options": {"cwd": "${workspaceFolder}","shell": {"executable": "E:\\tool\\Git\\bin\\bash.exe","args": ["-c"]}}}]
}

vscode shell输出
前面介绍了task可以通过F5调试的方式匹配执行。

还可以Ctrl+F8手动执行。
还可以在Terminal菜单选择Run Task来执行。

task输入参数示例

task也可以交互输入参数,又2中方式:

  1. 一种是配置选项,运行是下拉选择pickString
  2. 一种是手动输入,promptString

pickString参数:

  1. description:变量说明
  2. options:可选项数组
  3. default:默认值。它必须在options中

promptString参数:

  1. description:变量说明
  2. default:默认值
  3. password:是否是密码,如果是输入用*代替

vscode input 变量控制
vscode 任务下拉参数
vscode 任务输入参数

{"version": "2.0.0","tasks": [{"label": "task-测试变量输入","type": "shell","windows": { //windows下执行操作"command": "echo","args": ["下拉参数:${input:manual_pick}","输入参数:${input:manual_input}"]},"group": {"kind": "build","isDefault": true,},}],"inputs": [{"id": "manual_pick","type": "pickString", //"输入参数类型: 挑选预设的选项","default": "选项B","options": ["选项A","选项B","选项C","选项D"],"description": "task输入参数预设,执行时下拉选择",},{"id": "manual_input","type": "promptString", // 输入参数类型: 直接输入的字符串"password": false, // 如果是true,表示密码用*表示"default": "你干嘛啊!", // 默认字符串"description": "task参数手动输入",},],
}

task内置参数示例

vscode 内置变量

{"version": "2.0.0","tasks": [{"label": "task-测试vscode内置变量","type": "shell","command": "print.sh","args": ["workspaceFolder=${workspaceFolder}","workspaceFolderBasename=${workspaceFolderBasename}","file=${file}","fileWorkspaceFolder=${fileWorkspaceFolder}","relativeFile=${relativeFile}","relativeFileDirname=${relativeFileDirname}","fileBasename=${fileBasename}","fileBasenameNoExtension=${fileBasenameNoExtension}","fileExtname=${fileExtname}","fileDirname=${fileDirname}","fileDirnameBasename=${fileDirnameBasename}"],"options": {"shell": {"executable": "E:\\tool\\Git\\bin\\sh.exe","args": ["-i"]}},"presentation": {"echo": true, // 显示命令  "reveal": "always", // 显示输出面板  "focus": false, // 不自动聚焦输出面板  "panel": "new", // 共享输出面板  "showReuseMessage": true, // 显示重用消息  "clear": false // 不清除之前的输出  },"group": {"kind": "build","isDefault": true,},}]
}
for arg in "$@"; doecho "$arg"
done

更多参数说明请查看官方文档

任务依赖关系

我们把前面整合起来,来看一下任务的依赖设置:

{"version": "2.0.0","tasks": [{"label": "task-运行脚本","type": "shell","options": {"cwd": "${workspaceFolder}",},"windows": {"command": "base.bat","args": ["参数1","参数2"],},"group": {"kind": "build","isDefault": true,},"dependsOrder": "sequence","dependsOn": ["task-测试变量输入","task-测试shell","task-测试vscode内置变量"]},{"label": "task-测试变量输入","type": "shell","group": "build","windows": { //windows下执行操作"command": "echo","args": ["下拉参数:${input:manual_pick}","输入参数:${input:manual_input}"]}},{"label": "task-测试shell","type": "shell","group": "build","command": "ls","args": ["-al"],"options": {"cwd": "${workspaceFolder}","shell": {"executable": "E:\\tool\\Git\\bin\\bash.exe","args": ["-c"]}}},{"label": "task-测试vscode内置变量","type": "shell","command": "print.sh","args": ["workspaceFolder=${workspaceFolder}","workspaceFolderBasename=${workspaceFolderBasename}","file=${file}","fileWorkspaceFolder=${fileWorkspaceFolder}","relativeFile=${relativeFile}","relativeFileDirname=${relativeFileDirname}","fileBasename=${fileBasename}","fileBasenameNoExtension=${fileBasenameNoExtension}","fileExtname=${fileExtname}","fileDirname=${fileDirname}","fileDirnameBasename=${fileDirnameBasename}"],"options": {"shell": {"executable": "E:\\tool\\Git\\bin\\sh.exe","args": ["-i"]}}}],"inputs": [{"id": "manual_pick","type": "pickString", //"输入参数类型: 挑选预设的选项","default": "选项B","options": ["选项A","选项B","选项C","选项D"],"description": "task输入参数预设,执行时下拉选择",},{"id": "manual_input","type": "promptString", // 输入参数类型: 直接输入的字符串"password": false, // 如果是true,表示密码用*表示"default": "你干嘛啊!", // 默认字符串"description": "task参数手动输入",},],
}
@echo off
echo "打印所有命令行参数"
for %%i in (%*) do (echo %%i
)

launch

launch用来配置debug,常用参数:

  1. name: 配置名称,便于区分就可以
  2. type: 调试器类型,python、cppdbg、node、java
  3. request: 调试请求类型,launch、attach
  4. program: 要调试的程序路径或文件
  5. args: 传递给程序的命令行参数,数组形式
  6. cwd: 当前工作目录
  7. env: 环境变量设置
  8. sourceMaps: 是否启用源映射(JavaScript、TypeScript)
  9. preLaunchTask: 调试前要执行的任务,通常是编译任务
  10. postDebugTask: 调试结束后要执行的任务
  11. stopOnEntry: 是否在程序入口处停止。
  12. console: 控制台类型integratedTerminal、externalTerminal、internalConsole
{"version": "0.2.0","configurations": [{"name": "debug-Go程序", // 名称可以在debug面板中看到区分"type": "go", // 定义调试器的类型"request": "launch", "program": "${file}", // 待调试的可执行程序的路径"args": [], // 设置可执行程序所需要的参数"stopAtEntry": false, // 程序不会再入口点处停止(即main函数),从头运行到结束或设置的断点处"cwd": "${workspaceFolder}", // 设置当前的工作目录"environment": [], // 设置调试的环境变量"externalConsole": false, // 不使用外部控制台,调试输出将显示在内置的调试控制台中"preLaunchTask": "go-build" // tasks.json创建的任务中的label匹配} ]
}

配置TyepScript的task和launch

首先我们来看一下完整的目录结构:

vscode typescript调试

task.json

{"version": "2.0.0","tasks": [{"label": "编译TS项目","type": "typescript","tsconfig": "tsconfig.json","problemMatcher": ["$tsc"],"group": {"kind": "build","isDefault": true}}]
}

注意type是typescript,特殊的,可以指定任务配置文件

tsconfig.json

这个是typescript的配置文件。

{"compilerOptions": {"target": "ES2016","module": "CommonJS","outDir": "dist","sourceMap": true}
}

outDir是编译之后的JS文件目录。

launch.json

{"version": "0.2.0","configurations": [{"name": "调试当前TS","type": "node","request": "launch","skipFiles": ["<node_internals>/**"],"program": "${file}","preLaunchTask": "编译TS项目","outFiles": ["${workspaceFolder}/dist/**/*.js"]}]
}

type是node,program要执行的文件,这里配置的是当前文件,可以配置为固定路径的入口文件。

outFiles配置的是编译之后的JS文件,就是要执行的文件,如果不配或者找不到,执行的是program的ts文件,有问题,所以一定要检查是否正确。

Debug

vscode debug

我们可以在debug中看到launch的name,终端中的task tab中看到task的label。

代码文件

入口文件main.ts

// import tarray = require("./ts-array");
// import amap = require('./ts-map');
import { getArray } from "./ts-array";
import * as amap from "./ts-map";// let array: string[] = tarray.getArray();
let array: string[] = getArray();
array.forEach(function (value) {console.log(value);
})amap.testMapIter();
amap.testMapBaseFun();

测试文件:

export {getArray}function getArray(): string[] {return new Array("Java", "Go", "C++", "Rust", "Python", "C", "PHP", "SQL", "TypeScript");}function testArrayBase() {let array: string[];array = getArray();console.log(array[0]);console.log(array[1]);let nums: number[] = [1, 2, 3, 4]console.log(nums[0]);console.log(nums[1]);console.log(nums[2]);console.log(nums[3]);}function testArrayLength() {let nums = new Array(4);for (let i = 0; i < nums.length; i++) {nums[i] = i * 2;}for (let i in nums) {console.log(nums[i]);}var language = getArray();for (var i = 0; i < language.length; i++) {console.log(language[i]);}}testArrayBase();testArrayLength();
export {testMapBaseFun,testMapIter}function testMapIter() {let map = new Map();map.set("Java", 1);map.set("C++", 2);map.set("Go", 3);// 迭代 Map 中的 keyfor (let key of map.keys()) {console.log(key);}// 迭代 Map 中的 valuefor (let value of map.values()) {console.log(value);}// 迭代 Map 中的 key => valuefor (let entry of map.entries()) {console.log(entry[0], entry[1]);}// 使用对象解析for (let [key, value] of map) {console.log(key, value);}}function testMapBaseFun() {let map = new Map();map.set("Java", 1);map.set("C++", 2);map.set("Go", 3);// 获取键对应的值console.log(map.get("Go"));// 判断 Map 中是否包含键对应的值console.log(map.has("Python"));console.log(map.has("Java"));// 返回 Map 对象键/值对的数量console.log(map.size);// 删除元素,删除成功返回trueconsole.log(map.delete("Go"));console.log(map);// 移除 Map 对象的所有键/值对map.clear();console.log(map);}testMapIter();testMapBaseFun();

更多配置可以参考官网

异常情况

powershell不能用的情况:

Executing task: tsc -p d:\project\front\ts\tsconfig.json tsc : 无法加载文件 E:\language\nodejs16\node_global\tsc.ps1,因为在此系统上禁止运行脚本。
有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。
所在位置 行:1 字符: 1
+ tsc -p d:\project\front\ts\tsconfig.json
+ ~~~+ CategoryInfo          : SecurityError: (:) [],PSSecurityException+ FullyQualifiedErrorId : UnauthorizedAccessThe terminal process "C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -Command tsc -p d:\project\front\ts\tsconfig.json" terminated with exit code: 1. 
Terminal will be reused by tasks, press any key to close it. 

我们在vscode终端不能打开中已经有过一点介绍。

我们知道默认使用的终端也是settings.json中配置:

vscode 用户配置终端

"terminal.integrated.defaultProfile.windows": "Command Prompt"
关键字:网络公关在哪些方面能发挥作用_b2c网站是什么_国家免费职业技能培训官网_网站制作需要多少钱

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: