costway-tracking-v2 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.cursor/README.md +150 -0
- package/.cursor/cursors-intellisense-rules.json +62 -0
- package/.cursor/rules.json +50 -0
- package/.cursor/settings.json +32 -0
- package/.cursor/snippets.json +186 -0
- package/README.md +223 -0
- package/index.cjs +494 -0
- package/index.html +42 -0
- package/package.json +20 -0
- package/tracking-dev.js +463 -0
- package/tracking.js +464 -0
- package/trackvue3.js +526 -0
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
# Cursor 规则配置说明
|
|
2
|
+
|
|
3
|
+
本项目包含了一系列适用于 Cursor 编辑器的自定义规则和配置,旨在提高开发效率和代码质量。
|
|
4
|
+
|
|
5
|
+
## 目录结构
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
.cursor/
|
|
9
|
+
├── rules.json # 基本编辑器规则
|
|
10
|
+
├── settings.json # 编辑器设置
|
|
11
|
+
├── cursors-intellisense-rules.json # 智能提示规则
|
|
12
|
+
├── snippets.json # 代码片段
|
|
13
|
+
└── README.md # 说明文档
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## 规则说明
|
|
17
|
+
|
|
18
|
+
### 基本规则 (rules.json)
|
|
19
|
+
|
|
20
|
+
包含了代码格式化、搜索排除和文件关联等基本设置。规则内容:
|
|
21
|
+
|
|
22
|
+
- 自动格式化保存
|
|
23
|
+
- 标签大小为2个空格
|
|
24
|
+
- 设置搜索过滤规则
|
|
25
|
+
- 文件关联配置
|
|
26
|
+
- 终端和Git相关设置
|
|
27
|
+
|
|
28
|
+
### 编辑器设置 (settings.json)
|
|
29
|
+
|
|
30
|
+
定义了编辑器外观和行为的详细设置:
|
|
31
|
+
|
|
32
|
+
- 字体设置 (JetBrains Mono)
|
|
33
|
+
- 编辑器视觉增强
|
|
34
|
+
- JavaScript 格式化规则
|
|
35
|
+
- 差异编辑器设置
|
|
36
|
+
|
|
37
|
+
### 智能提示规则 (cursors-intellisense-rules.json)
|
|
38
|
+
|
|
39
|
+
提供了与跟踪功能相关的智能代码补全:
|
|
40
|
+
|
|
41
|
+
- tracking-import: 导入跟踪功能相关依赖
|
|
42
|
+
- vue2-init: Vue 2项目中初始化跟踪
|
|
43
|
+
- vue3-init: Vue 3项目中初始化跟踪
|
|
44
|
+
- track-event: 跟踪自定义事件
|
|
45
|
+
- nuxt-tracking: NUXT框架中初始化跟踪
|
|
46
|
+
- vite-tracking: VITE框架中导入和设置跟踪
|
|
47
|
+
- global-params: 设置全局跟踪参数
|
|
48
|
+
- cdn-tracking: 添加CDN跟踪脚本
|
|
49
|
+
|
|
50
|
+
### 代码片段 (snippets.json)
|
|
51
|
+
|
|
52
|
+
包含了常用代码片段,提高编码效率:
|
|
53
|
+
|
|
54
|
+
- trackVue2: 初始化Vue2项目的跟踪功能
|
|
55
|
+
- trackVue3: 初始化Vue3项目的跟踪功能
|
|
56
|
+
- trackEvent: 跟踪自定义事件
|
|
57
|
+
- vueTrack: 带有跟踪功能的Vue组件
|
|
58
|
+
- trackNuxt: 在NUXT框架中初始化跟踪功能
|
|
59
|
+
- trackVite: 在VITE框架中初始化跟踪功能
|
|
60
|
+
- trackGlobalParams: 设置全局跟踪参数
|
|
61
|
+
- trackCDN: 添加CDN跟踪脚本(正式环境)
|
|
62
|
+
- trackCDNDev: 添加CDN跟踪脚本(测试环境)
|
|
63
|
+
- npmPublish: 完整的NPM包发布流程
|
|
64
|
+
- npmVersion: 更新NPM包版本号的命令
|
|
65
|
+
- npmPublishBeta: 发布NPM包的beta版本
|
|
66
|
+
|
|
67
|
+
## 使用方法
|
|
68
|
+
|
|
69
|
+
1. 确保所有文件都放在项目根目录的 `.cursor` 文件夹中
|
|
70
|
+
2. 在 Cursor 编辑器中重新打开项目以应用设置
|
|
71
|
+
3. 使用代码片段:在编辑器中输入相应前缀(如 `trackVue3`)然后按 Tab 键
|
|
72
|
+
4. 智能提示:在编写代码时,Cursor 会根据上下文提供智能建议
|
|
73
|
+
|
|
74
|
+
### 常用片段示例
|
|
75
|
+
|
|
76
|
+
```javascript
|
|
77
|
+
// NUXT框架集成 - 输入 trackNuxt 后按Tab
|
|
78
|
+
import Vue from 'vue';
|
|
79
|
+
import { initTracking, setConfig } from 'costway-tracking/index.cjs';
|
|
80
|
+
|
|
81
|
+
export default ({ app }) => {
|
|
82
|
+
// 设置国家代码
|
|
83
|
+
setConfig({ country: 'us' });
|
|
84
|
+
// 初始化跟踪
|
|
85
|
+
initTracking(app.router);
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
// Vue3/VITE框架集成 - 输入 trackVite 后按Tab
|
|
89
|
+
import { initTracking, setConfig } from 'costway-tracking/trackvue3';
|
|
90
|
+
|
|
91
|
+
// 设置国家代码
|
|
92
|
+
setConfig({ country: 'us' });
|
|
93
|
+
// 初始化跟踪
|
|
94
|
+
initTracking(router);
|
|
95
|
+
|
|
96
|
+
// 全局参数设置 - 输入 trackGlobalParams 后按Tab
|
|
97
|
+
window.customGlobalParams = {
|
|
98
|
+
email: 'userEmail',
|
|
99
|
+
customerId: 'userId'
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
// 自定义事件跟踪 - 输入 trackEvent 后按Tab
|
|
103
|
+
trackCustomEvent('eventName', {
|
|
104
|
+
'key': 'value'
|
|
105
|
+
});
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
```html
|
|
109
|
+
<!-- 添加CDN跟踪脚本(正式环境) - 输入 trackCDN 后按Tab -->
|
|
110
|
+
<script src="https://assets.costway.com/email/css/jquery.min.js"></script>
|
|
111
|
+
<script src="https://cdn1.costway.com/cgs-assets/tracking.js"></script>
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
# NPM包发布流程 - 输入 npmPublish 后按Tab
|
|
116
|
+
# 1. 确保代码已提交到git
|
|
117
|
+
git add .
|
|
118
|
+
git commit -m "准备发布新版本"
|
|
119
|
+
|
|
120
|
+
# 2. 更新版本号
|
|
121
|
+
npm version patch # 可选 patch, minor, major
|
|
122
|
+
|
|
123
|
+
# 3. 构建项目
|
|
124
|
+
npm run build
|
|
125
|
+
|
|
126
|
+
# 4. 发布到npm
|
|
127
|
+
npm publish
|
|
128
|
+
|
|
129
|
+
# 5. 推送到git仓库,包括标签
|
|
130
|
+
git push && git push --tags
|
|
131
|
+
|
|
132
|
+
# 发布Beta版本 - 输入 npmPublishBeta 后按Tab
|
|
133
|
+
# 更新版本号,添加beta标识
|
|
134
|
+
npm version prepatch --preid=beta
|
|
135
|
+
|
|
136
|
+
# 构建项目
|
|
137
|
+
npm run build
|
|
138
|
+
|
|
139
|
+
# 发布beta版本
|
|
140
|
+
npm publish --tag beta
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
## 自定义
|
|
144
|
+
|
|
145
|
+
您可以根据项目需要修改这些文件来自定义规则和设置:
|
|
146
|
+
|
|
147
|
+
1. 编辑 `rules.json` 更改基本编辑器行为
|
|
148
|
+
2. 更新 `settings.json` 调整编辑器外观
|
|
149
|
+
3. 在 `snippets.json` 中添加更多代码片段
|
|
150
|
+
4. 修改 `cursors-intellisense-rules.json` 自定义智能提示规则
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
{
|
|
2
|
+
"rules": [
|
|
3
|
+
{
|
|
4
|
+
"name": "tracking-import",
|
|
5
|
+
"pattern": "import \\{ initTracking",
|
|
6
|
+
"suggestion": "import { initTracking, trackCustomEvent } from '${source}';",
|
|
7
|
+
"description": "导入跟踪功能的完整依赖"
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
"name": "vue2-init",
|
|
11
|
+
"pattern": "mounted\\(\\)",
|
|
12
|
+
"suggestion": "mounted() {\n initTracking(this.$router);\n}",
|
|
13
|
+
"description": "在Vue2组件中初始化跟踪"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"name": "vue3-init",
|
|
17
|
+
"pattern": "const router = createRouter",
|
|
18
|
+
"suggestion": "const router = createRouter({\n history: createWebHistory(),\n routes\n});\n\n// 初始化跟踪\ninitTracking(router);",
|
|
19
|
+
"description": "在Vue3应用中初始化跟踪"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"name": "track-event",
|
|
23
|
+
"pattern": "trackCustomEvent",
|
|
24
|
+
"suggestion": "trackCustomEvent('${eventName}', {\n '${key}': '${value}'\n});",
|
|
25
|
+
"description": "跟踪自定义事件"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"name": "nuxt-tracking",
|
|
29
|
+
"pattern": "export default \\(\\{ app \\}\\)",
|
|
30
|
+
"suggestion": "export default ({ app }) => {\n // 设置国家代码\n setConfig({ country: 'us' });\n // 初始化跟踪\n initTracking(app.router);\n};",
|
|
31
|
+
"description": "在NUXT框架中初始化跟踪"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"name": "vite-tracking",
|
|
35
|
+
"pattern": "import \\{ createApp \\}",
|
|
36
|
+
"suggestion": "import { createApp } from 'vue';\nimport { initTracking, setConfig } from 'costway-tracking/trackvue3';\n\n// 设置国家代码\nsetConfig({ country: 'us' });",
|
|
37
|
+
"description": "在VITE框架中导入和设置跟踪"
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"name": "global-params",
|
|
41
|
+
"pattern": "window\\.customGlobalParams",
|
|
42
|
+
"suggestion": "window.customGlobalParams = {\n email: 'userEmail',\n customerId: 'userId'\n};",
|
|
43
|
+
"description": "设置全局跟踪参数"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"name": "cdn-tracking",
|
|
47
|
+
"pattern": "<script src=\"https://assets.costway.com/email/css/jquery.min.js\"></script>",
|
|
48
|
+
"suggestion": "<script src=\"https://assets.costway.com/email/css/jquery.min.js\"></script>\n<script src=\"https://cdn1.costway.com/cgs-assets/tracking.js\"></script>",
|
|
49
|
+
"description": "添加CDN跟踪脚本"
|
|
50
|
+
}
|
|
51
|
+
],
|
|
52
|
+
"filePatterns": {
|
|
53
|
+
"*.js": true,
|
|
54
|
+
"*.ts": true,
|
|
55
|
+
"*.vue": true,
|
|
56
|
+
"*.html": true
|
|
57
|
+
},
|
|
58
|
+
"excludePatterns": [
|
|
59
|
+
"**/node_modules/**",
|
|
60
|
+
"**/dist/**"
|
|
61
|
+
]
|
|
62
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
{
|
|
2
|
+
"editor": {
|
|
3
|
+
"formatOnSave": true,
|
|
4
|
+
"tabSize": 2,
|
|
5
|
+
"insertSpaces": true,
|
|
6
|
+
"detectIndentation": true,
|
|
7
|
+
"trimTrailingWhitespace": true,
|
|
8
|
+
"insertFinalNewline": true
|
|
9
|
+
},
|
|
10
|
+
"javascript": {
|
|
11
|
+
"formatter": "prettier",
|
|
12
|
+
"validate": true,
|
|
13
|
+
"autoClosingBrackets": true,
|
|
14
|
+
"suggestFromImports": true,
|
|
15
|
+
"updateImportsOnFileMove": true
|
|
16
|
+
},
|
|
17
|
+
"search": {
|
|
18
|
+
"exclude": {
|
|
19
|
+
"**/node_modules": true,
|
|
20
|
+
"**/dist": true,
|
|
21
|
+
"**/.git": true
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
"files": {
|
|
25
|
+
"associations": {
|
|
26
|
+
"*.vue": "vue"
|
|
27
|
+
},
|
|
28
|
+
"exclude": {
|
|
29
|
+
"**/node_modules": true,
|
|
30
|
+
"**/dist": true,
|
|
31
|
+
"**/.git": true
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"terminal": {
|
|
35
|
+
"integrated": {
|
|
36
|
+
"shell": {
|
|
37
|
+
"osx": "/bin/zsh"
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
"git": {
|
|
42
|
+
"enabled": true,
|
|
43
|
+
"autofetch": true,
|
|
44
|
+
"confirmSync": false
|
|
45
|
+
},
|
|
46
|
+
"workbench": {
|
|
47
|
+
"iconTheme": "material-icon-theme",
|
|
48
|
+
"colorTheme": "One Dark Pro"
|
|
49
|
+
}
|
|
50
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"editor.fontFamily": "JetBrains Mono, Monaco, 'Courier New', monospace",
|
|
3
|
+
"editor.fontSize": 14,
|
|
4
|
+
"editor.fontLigatures": true,
|
|
5
|
+
"editor.lineHeight": 24,
|
|
6
|
+
"editor.wordWrap": "on",
|
|
7
|
+
"editor.bracketPairColorization.enabled": true,
|
|
8
|
+
"editor.guides.bracketPairs": true,
|
|
9
|
+
"editor.minimap.enabled": true,
|
|
10
|
+
"editor.cursorBlinking": "smooth",
|
|
11
|
+
"editor.cursorSmoothCaretAnimation": true,
|
|
12
|
+
"editor.smoothScrolling": true,
|
|
13
|
+
"workbench.startupEditor": "none",
|
|
14
|
+
"explorer.compactFolders": false,
|
|
15
|
+
"explorer.confirmDelete": true,
|
|
16
|
+
"window.zoomLevel": 0,
|
|
17
|
+
"terminal.integrated.fontSize": 14,
|
|
18
|
+
"javascript.updateImportsOnFileMove.enabled": "always",
|
|
19
|
+
"javascript.format.semicolons": "insert",
|
|
20
|
+
"javascript.preferences.quoteStyle": "single",
|
|
21
|
+
"search.exclude": {
|
|
22
|
+
"**/node_modules": true,
|
|
23
|
+
"**/dist": true,
|
|
24
|
+
"**/.git": true
|
|
25
|
+
},
|
|
26
|
+
"extensions.ignoreRecommendations": false,
|
|
27
|
+
"git.autofetch": true,
|
|
28
|
+
"git.confirmSync": false,
|
|
29
|
+
"git.enableSmartCommit": true,
|
|
30
|
+
"diffEditor.ignoreTrimWhitespace": false,
|
|
31
|
+
"diffEditor.renderSideBySide": true
|
|
32
|
+
}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
{
|
|
2
|
+
"JavaScript": {
|
|
3
|
+
"初始化Vue2跟踪": {
|
|
4
|
+
"prefix": "trackVue2",
|
|
5
|
+
"body": [
|
|
6
|
+
"import { initTracking, trackCustomEvent } from '${1:your-library/index}';",
|
|
7
|
+
"",
|
|
8
|
+
"export default {",
|
|
9
|
+
" mounted() {",
|
|
10
|
+
" initTracking(this.\\$router);",
|
|
11
|
+
" }",
|
|
12
|
+
"}"
|
|
13
|
+
],
|
|
14
|
+
"description": "初始化Vue2项目的跟踪功能"
|
|
15
|
+
},
|
|
16
|
+
"初始化Vue3跟踪": {
|
|
17
|
+
"prefix": "trackVue3",
|
|
18
|
+
"body": [
|
|
19
|
+
"import { createApp } from 'vue';",
|
|
20
|
+
"import App from './App.vue';",
|
|
21
|
+
"import { createRouter, createWebHistory } from 'vue-router';",
|
|
22
|
+
"import { initTracking } from '${1:./tracking}';",
|
|
23
|
+
"",
|
|
24
|
+
"// 定义和创建路由",
|
|
25
|
+
"const routes = [",
|
|
26
|
+
" $2",
|
|
27
|
+
"];",
|
|
28
|
+
"const router = createRouter({",
|
|
29
|
+
" history: createWebHistory(),",
|
|
30
|
+
" routes",
|
|
31
|
+
"});",
|
|
32
|
+
"",
|
|
33
|
+
"// 初始化跟踪",
|
|
34
|
+
"initTracking(router);",
|
|
35
|
+
"",
|
|
36
|
+
"// 创建和挂载应用",
|
|
37
|
+
"const app = createApp(App);",
|
|
38
|
+
"app.use(router);",
|
|
39
|
+
"app.mount('#app');"
|
|
40
|
+
],
|
|
41
|
+
"description": "初始化Vue3项目的跟踪功能"
|
|
42
|
+
},
|
|
43
|
+
"跟踪自定义事件": {
|
|
44
|
+
"prefix": "trackEvent",
|
|
45
|
+
"body": [
|
|
46
|
+
"trackCustomEvent('${1:eventName}', {",
|
|
47
|
+
" '${2:key}': '${3:value}'",
|
|
48
|
+
"});"
|
|
49
|
+
],
|
|
50
|
+
"description": "跟踪自定义事件"
|
|
51
|
+
},
|
|
52
|
+
"NUXT跟踪初始化": {
|
|
53
|
+
"prefix": "trackNuxt",
|
|
54
|
+
"body": [
|
|
55
|
+
"import Vue from 'vue';",
|
|
56
|
+
"import { initTracking, setConfig } from 'costway-tracking/index.cjs';",
|
|
57
|
+
"",
|
|
58
|
+
"export default ({ app }) => {",
|
|
59
|
+
" // 设置国家代码",
|
|
60
|
+
" setConfig({ country: '${1:us}' });",
|
|
61
|
+
" // 初始化跟踪",
|
|
62
|
+
" initTracking(app.router);",
|
|
63
|
+
"};"
|
|
64
|
+
],
|
|
65
|
+
"description": "在NUXT框架中初始化跟踪功能"
|
|
66
|
+
},
|
|
67
|
+
"VITE跟踪初始化": {
|
|
68
|
+
"prefix": "trackVite",
|
|
69
|
+
"body": [
|
|
70
|
+
"import { initTracking, setConfig } from 'costway-tracking/trackvue3';",
|
|
71
|
+
"",
|
|
72
|
+
"// 设置国家代码",
|
|
73
|
+
"setConfig({ country: '${1:us}' });",
|
|
74
|
+
"// 初始化跟踪",
|
|
75
|
+
"initTracking(router);"
|
|
76
|
+
],
|
|
77
|
+
"description": "在VITE框架中初始化跟踪功能"
|
|
78
|
+
},
|
|
79
|
+
"全局参数设置": {
|
|
80
|
+
"prefix": "trackGlobalParams",
|
|
81
|
+
"body": [
|
|
82
|
+
"window.customGlobalParams = {",
|
|
83
|
+
" email: '${1:userEmail}',",
|
|
84
|
+
" customerId: '${2:userId}'",
|
|
85
|
+
"};"
|
|
86
|
+
],
|
|
87
|
+
"description": "设置全局跟踪参数"
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
"HTML": {
|
|
91
|
+
"CDN跟踪正式环境": {
|
|
92
|
+
"prefix": "trackCDN",
|
|
93
|
+
"body": [
|
|
94
|
+
"<script src=\"https://assets.costway.com/email/css/jquery.min.js\"></script>",
|
|
95
|
+
"<script src=\"https://cdn1.costway.com/cgs-assets/tracking.js\"></script>"
|
|
96
|
+
],
|
|
97
|
+
"description": "添加CDN跟踪脚本(正式环境)"
|
|
98
|
+
},
|
|
99
|
+
"CDN跟踪测试环境": {
|
|
100
|
+
"prefix": "trackCDNDev",
|
|
101
|
+
"body": [
|
|
102
|
+
"<script src=\"https://assets.costway.com/email/css/jquery.min.js\"></script>",
|
|
103
|
+
"<script src=\"https://cdn1.costway.com/cgs-assets/tracking-dev.js\"></script>"
|
|
104
|
+
],
|
|
105
|
+
"description": "添加CDN跟踪脚本(测试环境)"
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
"Vue": {
|
|
109
|
+
"Vue组件跟踪": {
|
|
110
|
+
"prefix": "vueTrack",
|
|
111
|
+
"body": [
|
|
112
|
+
"<template>",
|
|
113
|
+
" <div>${1}</div>",
|
|
114
|
+
"</template>",
|
|
115
|
+
"",
|
|
116
|
+
"<script>",
|
|
117
|
+
"import { trackCustomEvent } from '${2:your-library/index}';",
|
|
118
|
+
"",
|
|
119
|
+
"export default {",
|
|
120
|
+
" name: '${3:ComponentName}',",
|
|
121
|
+
" methods: {",
|
|
122
|
+
" trackAction() {",
|
|
123
|
+
" trackCustomEvent('${4:actionName}', {",
|
|
124
|
+
" component: '${3:ComponentName}',",
|
|
125
|
+
" action: '${5:click}'",
|
|
126
|
+
" });",
|
|
127
|
+
" }",
|
|
128
|
+
" }",
|
|
129
|
+
"}",
|
|
130
|
+
"</script>"
|
|
131
|
+
],
|
|
132
|
+
"description": "带有跟踪功能的Vue组件"
|
|
133
|
+
}
|
|
134
|
+
},
|
|
135
|
+
"NPM": {
|
|
136
|
+
"发布NPM包流程": {
|
|
137
|
+
"prefix": "npmPublish",
|
|
138
|
+
"body": [
|
|
139
|
+
"# 1. 确保代码已提交到git",
|
|
140
|
+
"git add .",
|
|
141
|
+
"git commit -m \"${1:准备发布新版本}\"",
|
|
142
|
+
"",
|
|
143
|
+
"# 2. 更新版本号",
|
|
144
|
+
"npm version ${2|patch,minor,major|}",
|
|
145
|
+
"",
|
|
146
|
+
"# 3. 构建项目",
|
|
147
|
+
"npm run build",
|
|
148
|
+
"",
|
|
149
|
+
"# 4. 发布到npm",
|
|
150
|
+
"npm publish",
|
|
151
|
+
"",
|
|
152
|
+
"# 5. 推送到git仓库,包括标签",
|
|
153
|
+
"git push && git push --tags"
|
|
154
|
+
],
|
|
155
|
+
"description": "完整的NPM包发布流程"
|
|
156
|
+
},
|
|
157
|
+
"更新NPM版本号": {
|
|
158
|
+
"prefix": "npmVersion",
|
|
159
|
+
"body": [
|
|
160
|
+
"# 更新补丁版本号 (1.0.0 -> 1.0.1)",
|
|
161
|
+
"npm version patch",
|
|
162
|
+
"",
|
|
163
|
+
"# 更新小版本号 (1.0.0 -> 1.1.0)",
|
|
164
|
+
"# npm version minor",
|
|
165
|
+
"",
|
|
166
|
+
"# 更新大版本号 (1.0.0 -> 2.0.0)",
|
|
167
|
+
"# npm version major"
|
|
168
|
+
],
|
|
169
|
+
"description": "更新NPM包版本号的命令"
|
|
170
|
+
},
|
|
171
|
+
"发布Beta版本": {
|
|
172
|
+
"prefix": "npmPublishBeta",
|
|
173
|
+
"body": [
|
|
174
|
+
"# 更新版本号,添加beta标识",
|
|
175
|
+
"npm version ${1:prepatch} --preid=beta",
|
|
176
|
+
"",
|
|
177
|
+
"# 构建项目",
|
|
178
|
+
"npm run build",
|
|
179
|
+
"",
|
|
180
|
+
"# 发布beta版本",
|
|
181
|
+
"npm publish --tag beta"
|
|
182
|
+
],
|
|
183
|
+
"description": "发布NPM包的beta版本"
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
package/README.md
ADDED
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
# Costway 统计脚本使用说明
|
|
2
|
+
|
|
3
|
+
## 安装方式
|
|
4
|
+
|
|
5
|
+
### NPM包安装
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
# 使用npm
|
|
9
|
+
npm install costway-tracking
|
|
10
|
+
|
|
11
|
+
# 使用yarn
|
|
12
|
+
yarn add costway-tracking
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## 框架集成指南
|
|
16
|
+
|
|
17
|
+
### NUXT框架
|
|
18
|
+
|
|
19
|
+
在`plugins`目录下创建`tracking.js`文件:
|
|
20
|
+
|
|
21
|
+
```javascript
|
|
22
|
+
import Vue from 'vue';
|
|
23
|
+
import { initTracking, setConfig } from 'costway-tracking/index.cjs'
|
|
24
|
+
|
|
25
|
+
export default ({ app }) => {
|
|
26
|
+
// 使用 app.router 访问路由实例
|
|
27
|
+
setConfig({ country: 'us' });
|
|
28
|
+
initTracking(app.router);
|
|
29
|
+
};
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
然后在`nuxt.config.js`中注册插件:
|
|
33
|
+
|
|
34
|
+
```javascript
|
|
35
|
+
plugins: [
|
|
36
|
+
{ src: '~/plugins/tracking.js', mode: 'client' }
|
|
37
|
+
]
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### VITE框架
|
|
41
|
+
|
|
42
|
+
在`main.js`中添加:
|
|
43
|
+
|
|
44
|
+
```javascript
|
|
45
|
+
import { initTracking, setConfig } from 'costway-tracking/trackvue3'
|
|
46
|
+
|
|
47
|
+
setConfig({ country: 'us' })
|
|
48
|
+
initTracking(router);
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### 文件说明
|
|
52
|
+
|
|
53
|
+
为兼容Vue2和Vue3,我们提供了不同的导入文件:
|
|
54
|
+
|
|
55
|
+
- Vue2: `costway-tracking/index.cjs`
|
|
56
|
+
- Vue3: `costway-tracking/trackvue3`
|
|
57
|
+
|
|
58
|
+
## CDN方式集成 (M2相关国家)
|
|
59
|
+
|
|
60
|
+
> 建议文件加载尽量靠前,在jQuery后面
|
|
61
|
+
|
|
62
|
+
### 正式环境
|
|
63
|
+
|
|
64
|
+
```html
|
|
65
|
+
<script src="https://assets.costway.com/email/css/jquery.min.js"></script>
|
|
66
|
+
<script src="https://cdn1.costway.com/cgs-assets/tracking.js"></script>
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### 测试环境
|
|
70
|
+
|
|
71
|
+
```html
|
|
72
|
+
<script src="https://assets.costway.com/email/css/jquery.min.js"></script>
|
|
73
|
+
<script src="https://cdn1.costway.com/cgs-assets/tracking-dev.js"></script>
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## 配置与参数设置
|
|
77
|
+
|
|
78
|
+
### 国家注册(必须设置)
|
|
79
|
+
|
|
80
|
+
```javascript
|
|
81
|
+
setConfig({ country: 'us' })
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### 全局参数注册(必须设置)
|
|
85
|
+
|
|
86
|
+
```javascript
|
|
87
|
+
window.customGlobalParams = {
|
|
88
|
+
email: 'value1',
|
|
89
|
+
customerId: 'value2'
|
|
90
|
+
};
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## 事件类型说明
|
|
94
|
+
|
|
95
|
+
### 自动收集事件
|
|
96
|
+
|
|
97
|
+
- **pageView**: 页面加载时触发
|
|
98
|
+
- **pageLeave**: 页面离开时触发(跳转、刷新、tab切换等)
|
|
99
|
+
|
|
100
|
+
这两个事件会在以下情况自动触发:
|
|
101
|
+
- 页面加载
|
|
102
|
+
- 点击跳转
|
|
103
|
+
- 刷新页面
|
|
104
|
+
- Tab切换
|
|
105
|
+
- 移动端回到首页
|
|
106
|
+
|
|
107
|
+
### 手动触发事件
|
|
108
|
+
|
|
109
|
+
#### customEvent 自定义事件
|
|
110
|
+
|
|
111
|
+
用于记录用户行为、手动触发内容等:
|
|
112
|
+
|
|
113
|
+
```javascript
|
|
114
|
+
trackCustomEvent("mb_serveError", { url: window.location.href });
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
#### 参数结构体
|
|
118
|
+
|
|
119
|
+
```javascript
|
|
120
|
+
{
|
|
121
|
+
userId: "用户uuid",
|
|
122
|
+
timestamp: "时间戳",
|
|
123
|
+
customData: "事件数据",
|
|
124
|
+
eventName: "自定义事件名称,如add_carts"
|
|
125
|
+
}
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### 其他事件类型
|
|
129
|
+
|
|
130
|
+
- **click**: 点击事件
|
|
131
|
+
- **pageLoadTime**: 页面加载统计
|
|
132
|
+
- **resourceLoadTime**: 资源加载统计
|
|
133
|
+
- **error**: 错误日志
|
|
134
|
+
- **showElement**: 页面新增显示元素数据
|
|
135
|
+
- **closeElement**: 隐藏元素数据
|
|
136
|
+
|
|
137
|
+
## NPM包更新发布流程
|
|
138
|
+
|
|
139
|
+
本节介绍如何更新和发布NPM包到公共或私有仓库。
|
|
140
|
+
|
|
141
|
+
### 前置准备
|
|
142
|
+
|
|
143
|
+
确保你已经拥有发布权限并且已经登录npm:
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
# 登录到npm账号
|
|
147
|
+
npm login
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
### 修改版本号
|
|
151
|
+
|
|
152
|
+
可以手动修改`package.json`中的版本号,或使用npm命令自动更新:
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
# 更新补丁版本号 (1.0.0 -> 1.0.1)
|
|
156
|
+
npm version patch
|
|
157
|
+
|
|
158
|
+
# 更新小版本号 (1.0.0 -> 1.1.0)
|
|
159
|
+
npm version minor
|
|
160
|
+
|
|
161
|
+
# 更新大版本号 (1.0.0 -> 2.0.0)
|
|
162
|
+
npm version major
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
### 构建包
|
|
166
|
+
|
|
167
|
+
如果项目需要构建,请先执行构建命令:
|
|
168
|
+
|
|
169
|
+
```bash
|
|
170
|
+
npm run build
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
### 发布包
|
|
174
|
+
|
|
175
|
+
发布到公共npm仓库:
|
|
176
|
+
|
|
177
|
+
```bash
|
|
178
|
+
npm publish
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
发布到私有仓库(如果有配置):
|
|
182
|
+
|
|
183
|
+
```bash
|
|
184
|
+
npm publish --registry=https://registry.costway.com/
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
### 发布特定标签版本
|
|
188
|
+
|
|
189
|
+
如需发布特定标签的版本(如beta版本):
|
|
190
|
+
|
|
191
|
+
```bash
|
|
192
|
+
npm publish --tag beta
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
### 撤销发布
|
|
196
|
+
|
|
197
|
+
如需撤销最近24小时内发布的版本:
|
|
198
|
+
|
|
199
|
+
```bash
|
|
200
|
+
npm unpublish costway-tracking@版本号
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
### 完整发布流程示例
|
|
204
|
+
|
|
205
|
+
```bash
|
|
206
|
+
# 1. 确保代码已提交到git
|
|
207
|
+
git add .
|
|
208
|
+
git commit -m "准备发布新版本"
|
|
209
|
+
|
|
210
|
+
# 2. 更新版本号
|
|
211
|
+
npm version patch # 或 minor, major
|
|
212
|
+
|
|
213
|
+
# 3. 构建项目 (如果需要)
|
|
214
|
+
npm run build
|
|
215
|
+
|
|
216
|
+
# 4. 发布到npm
|
|
217
|
+
npm publish
|
|
218
|
+
|
|
219
|
+
# 5. 推送到git仓库,包括标签
|
|
220
|
+
git push && git push --tags
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
|