cbvirtua 1.0.115 → 1.0.122
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/package.json +1 -1
- package/sss.txt +2 -0
- package/v-track-master/v-track-master/.browserslistrc +3 -0
- package/v-track-master/v-track-master/.eslintignore +3 -0
- package/v-track-master/v-track-master/.eslintrc.js +15 -0
- package/v-track-master/v-track-master/.gitattributes +1 -0
- package/v-track-master/v-track-master/.github/FUNDING.yml +12 -0
- package/v-track-master/v-track-master/.github/workflows/node.js.yml +29 -0
- package/v-track-master/v-track-master/.travis.yml +22 -0
- package/v-track-master/v-track-master/.yarnrc +1 -0
- package/v-track-master/v-track-master/LICENSE +21 -0
- package/v-track-master/v-track-master/README.md +131 -0
- package/v-track-master/v-track-master/babel.config.js +25 -0
- package/v-track-master/v-track-master/build/rollup.config.base.js +14 -0
- package/v-track-master/v-track-master/build/rollup.config.browser.js +21 -0
- package/v-track-master/v-track-master/build/rollup.config.es.js +11 -0
- package/v-track-master/v-track-master/docs/.babelrc +5 -0
- package/v-track-master/v-track-master/docs/App.vue +61 -0
- package/v-track-master/v-track-master/docs/assets/app.scss +197 -0
- package/v-track-master/v-track-master/docs/assets/index.scss +10 -0
- package/v-track-master/v-track-master/docs/assets/mixins.scss +64 -0
- package/v-track-master/v-track-master/docs/assets/normalize.scss +349 -0
- package/v-track-master/v-track-master/docs/components/button.vue +15 -0
- package/v-track-master/v-track-master/docs/components/code-snippet.vue +72 -0
- package/v-track-master/v-track-master/docs/dist/css/app.2e14d2d6.css +4 -0
- package/v-track-master/v-track-master/docs/dist/css/chunk-vendors.c687a9b2.css +1 -0
- package/v-track-master/v-track-master/docs/dist/favicon.ico +0 -0
- package/v-track-master/v-track-master/docs/dist/fonts/element-icons.535877f5.woff +0 -0
- package/v-track-master/v-track-master/docs/dist/fonts/element-icons.732389de.ttf +0 -0
- package/v-track-master/v-track-master/docs/dist/js/app.efe84ade.js +2 -0
- package/v-track-master/v-track-master/docs/dist/js/app.efe84ade.js.map +1 -0
- package/v-track-master/v-track-master/docs/dist/js/chunk-vendors.c94e27ba.js +13 -0
- package/v-track-master/v-track-master/docs/dist/js/chunk-vendors.c94e27ba.js.map +1 -0
- package/v-track-master/v-track-master/docs/index.html +1 -0
- package/v-track-master/v-track-master/docs/main.js +78 -0
- package/v-track-master/v-track-master/docs/pages/block-show.vue +177 -0
- package/v-track-master/v-track-master/docs/pages/custom-events.vue +291 -0
- package/v-track-master/v-track-master/docs/pages/home.vue +269 -0
- package/v-track-master/v-track-master/docs/pages/started.vue +151 -0
- package/v-track-master/v-track-master/docs/pages/track-view.vue +234 -0
- package/v-track-master/v-track-master/docs/tracks/action.js +37 -0
- package/v-track-master/v-track-master/docs/tracks/events.js +140 -0
- package/v-track-master/v-track-master/docs/tracks/index.js +13 -0
- package/v-track-master/v-track-master/docs/utils/date.js +219 -0
- package/v-track-master/v-track-master/docs/utils/dom.js +26 -0
- package/v-track-master/v-track-master/jest.config.js +18 -0
- package/v-track-master/v-track-master/package.json +67 -0
- package/v-track-master/v-track-master/postcss.config.js +5 -0
- package/v-track-master/v-track-master/public/favicon.ico +0 -0
- package/v-track-master/v-track-master/public/index.html +18 -0
- package/v-track-master/v-track-master/src/hooks/index.js +217 -0
- package/v-track-master/v-track-master/src/index.js +79 -0
- package/v-track-master/v-track-master/src/utils/debug.js +13 -0
- package/v-track-master/v-track-master/src/utils/dom.js +73 -0
- package/v-track-master/v-track-master/src/utils/helper.js +122 -0
- package/v-track-master/v-track-master/src/utils/vis-monitor.js +183 -0
- package/v-track-master/v-track-master/tests/helper.js +37 -0
- package/v-track-master/v-track-master/tests/unit/.eslintrc.js +5 -0
- package/v-track-master/v-track-master/tests/unit/track-click-async.spec.js +52 -0
- package/v-track-master/v-track-master/tests/unit/track-click-delay.spec.js +46 -0
- package/v-track-master/v-track-master/tests/unit/track-click-native.spec.js +84 -0
- package/v-track-master/v-track-master/tests/unit/track-click-param.spec.js +55 -0
- package/v-track-master/v-track-master/tests/unit/track-click.spec.js +47 -0
- package/v-track-master/v-track-master/tests/unit/track-custom-event-async.spec.js +61 -0
- package/v-track-master/v-track-master/tests/unit/track-custom-event-delay.spec.js +59 -0
- package/v-track-master/v-track-master/tests/unit/track-custom-event-param.spec.js +68 -0
- package/v-track-master/v-track-master/tests/unit/track-custom-event.spec.js +55 -0
- package/v-track-master/v-track-master/tests/unit/track-show-custom-scroll-once.spec.js +62 -0
- package/v-track-master/v-track-master/tests/unit/track-show-custom-scroll.spec.js +62 -0
- package/v-track-master/v-track-master/tests/unit/track-show-once.spec.js +55 -0
- package/v-track-master/v-track-master/tests/unit/track-show-param.spec.js +51 -0
- package/v-track-master/v-track-master/tests/unit/track-show.spec.js +55 -0
- package/v-track-master/v-track-master/tests/unit/track-view-vif.spec.js +54 -0
- package/v-track-master/v-track-master/tests/unit/track-view-watch-delay.spec.js +63 -0
- package/v-track-master/v-track-master/tests/unit/track-view-watch.spec.js +61 -0
- package/v-track-master/v-track-master/tests/unit/track-view.spec.js +32 -0
- package/v-track-master/v-track-master/vue.config.js +45 -0
- package/v-track-master/v-track-master/yarn.lock +10186 -0
- package/vv.txt +10442 -0
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* @Author: 宋慧武
|
|
3
|
+
* @Date: 2019-04-12 21:03:46
|
|
4
|
+
* @Last Modified by: 宋慧武
|
|
5
|
+
* @Last Modified time: 2019-04-13 15:01:48
|
|
6
|
+
*/
|
|
7
|
+
import Vue from "vue";
|
|
8
|
+
import VTrack from "@/";
|
|
9
|
+
import { mount, createLocalVue } from "@vue/test-utils";
|
|
10
|
+
import { mockParentNode, mockRect } from "../helper";
|
|
11
|
+
|
|
12
|
+
const localVue = createLocalVue();
|
|
13
|
+
const mockTrackAction = jest.fn();
|
|
14
|
+
const trackEvents = {
|
|
15
|
+
18015: mockTrackAction
|
|
16
|
+
};
|
|
17
|
+
const TrackShowOnce = Vue.extend({
|
|
18
|
+
template: `
|
|
19
|
+
<div v-track:18015.show.once />
|
|
20
|
+
`
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
localVue.use(VTrack, {
|
|
24
|
+
trackEvents
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
jest.useFakeTimers();
|
|
28
|
+
|
|
29
|
+
describe("TrackShowOnce", () => {
|
|
30
|
+
it("确保DOM元素完全可见之后触发埋点,且只触发一次", () => {
|
|
31
|
+
const wrapper = mount(TrackShowOnce, { localVue });
|
|
32
|
+
const vm = wrapper.vm;
|
|
33
|
+
const scrollEvent = new UIEvent("scroll", { detail: 0 });
|
|
34
|
+
|
|
35
|
+
mockParentNode(vm.$el);
|
|
36
|
+
mockRect(vm.$el);
|
|
37
|
+
window.dispatchEvent(scrollEvent);
|
|
38
|
+
jest.runAllTimers();
|
|
39
|
+
expect(mockTrackAction).toBeCalledTimes(1);
|
|
40
|
+
|
|
41
|
+
[1, 2, 3].forEach(() => {
|
|
42
|
+
window.dispatchEvent(scrollEvent);
|
|
43
|
+
});
|
|
44
|
+
jest.runAllTimers();
|
|
45
|
+
expect(mockTrackAction).toBeCalledTimes(1);
|
|
46
|
+
|
|
47
|
+
[1, 2, 3].forEach(async () => {
|
|
48
|
+
await setTimeout(() => {
|
|
49
|
+
window.dispatchEvent(scrollEvent);
|
|
50
|
+
}, 300);
|
|
51
|
+
});
|
|
52
|
+
jest.runAllTimers();
|
|
53
|
+
expect(mockTrackAction).toBeCalledTimes(1);
|
|
54
|
+
});
|
|
55
|
+
});
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Created Date: 2019-08-05
|
|
3
|
+
* Author: 宋慧武
|
|
4
|
+
* ------
|
|
5
|
+
* Last Modified: Monday 2019-08-05 17:01:32 pm
|
|
6
|
+
* Modified By: the developer formerly known as 宋慧武 at <songhuiwu001@ke.com>
|
|
7
|
+
* ------
|
|
8
|
+
* HISTORY:
|
|
9
|
+
* ------
|
|
10
|
+
* Javascript will save your soul!
|
|
11
|
+
*/
|
|
12
|
+
import Vue from "vue";
|
|
13
|
+
import VTrack from "@/";
|
|
14
|
+
import { mount, createLocalVue } from "@vue/test-utils";
|
|
15
|
+
import { mockParentNode, mockRect } from "../helper";
|
|
16
|
+
|
|
17
|
+
const localVue = createLocalVue();
|
|
18
|
+
const mockTrackAction = jest.fn((_, id) => id);
|
|
19
|
+
const trackEvents = {
|
|
20
|
+
18015: mockTrackAction
|
|
21
|
+
};
|
|
22
|
+
const TrackShow = Vue.extend({
|
|
23
|
+
template: `
|
|
24
|
+
<div v-track:18015.show="{ id }" />
|
|
25
|
+
`,
|
|
26
|
+
data() {
|
|
27
|
+
return {
|
|
28
|
+
id: "2019"
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
localVue.use(VTrack, {
|
|
34
|
+
trackEvents
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
jest.useFakeTimers();
|
|
38
|
+
|
|
39
|
+
describe("TrackShow", () => {
|
|
40
|
+
it("确保DOM元素完全可见之后触发埋点,且至少间隔200ms执行一下", () => {
|
|
41
|
+
const wrapper = mount(TrackShow, { localVue });
|
|
42
|
+
const vm = wrapper.vm;
|
|
43
|
+
|
|
44
|
+
mockParentNode(vm.$el);
|
|
45
|
+
mockRect(vm.$el);
|
|
46
|
+
jest.runAllTimers();
|
|
47
|
+
|
|
48
|
+
expect(mockTrackAction.mock.results[0].value).toBe("2019");
|
|
49
|
+
expect(mockTrackAction).toBeCalledTimes(1);
|
|
50
|
+
});
|
|
51
|
+
});
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* @Author: 宋慧武
|
|
3
|
+
* @Date: 2019-04-12 21:03:46
|
|
4
|
+
* @Last Modified by: 宋慧武
|
|
5
|
+
* @Last Modified time: 2019-08-13 13:59:33
|
|
6
|
+
*/
|
|
7
|
+
import Vue from "vue";
|
|
8
|
+
import VTrack from "@/";
|
|
9
|
+
import { mount, createLocalVue } from "@vue/test-utils";
|
|
10
|
+
import { mockParentNode, mockRect } from "../helper";
|
|
11
|
+
|
|
12
|
+
const localVue = createLocalVue();
|
|
13
|
+
const mockTrackAction = jest.fn();
|
|
14
|
+
const trackEvents = {
|
|
15
|
+
18015: mockTrackAction
|
|
16
|
+
};
|
|
17
|
+
const TrackShow = Vue.extend({
|
|
18
|
+
template: `
|
|
19
|
+
<div v-track:18015.show />
|
|
20
|
+
`
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
localVue.use(VTrack, {
|
|
24
|
+
trackEvents
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
jest.useFakeTimers();
|
|
28
|
+
|
|
29
|
+
describe("TrackShow", () => {
|
|
30
|
+
it("确保DOM元素完全可见之后触发埋点,且至少间隔200ms执行一下", () => {
|
|
31
|
+
const wrapper = mount(TrackShow, { localVue });
|
|
32
|
+
const vm = wrapper.vm;
|
|
33
|
+
const scrollEvent = new UIEvent("scroll", { detail: 0 });
|
|
34
|
+
|
|
35
|
+
mockParentNode(vm.$el);
|
|
36
|
+
mockRect(vm.$el);
|
|
37
|
+
window.dispatchEvent(scrollEvent);
|
|
38
|
+
jest.runAllTimers();
|
|
39
|
+
expect(mockTrackAction).toBeCalledTimes(1);
|
|
40
|
+
|
|
41
|
+
// [1, 2, 3].forEach(() => {
|
|
42
|
+
// window.dispatchEvent(scrollEvent);
|
|
43
|
+
// });
|
|
44
|
+
// jest.runAllTimers();
|
|
45
|
+
// expect(mockTrackAction).toBeCalledTimes(2);
|
|
46
|
+
|
|
47
|
+
// [1, 2, 3].forEach(async () => {
|
|
48
|
+
// await setTimeout(() => {
|
|
49
|
+
// window.dispatchEvent(scrollEvent2);
|
|
50
|
+
// }, 300);
|
|
51
|
+
// });
|
|
52
|
+
// jest.runAllTimers();
|
|
53
|
+
// expect(mockTrackAction).toBeCalledTimes(5);
|
|
54
|
+
});
|
|
55
|
+
});
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* @Author: 宋慧武
|
|
3
|
+
* @Date: 2019-04-10 21:28:53
|
|
4
|
+
* @Last Modified by: 宋慧武
|
|
5
|
+
* @Last Modified time: 2019-04-10 23:18:37
|
|
6
|
+
*/
|
|
7
|
+
import Vue from "vue";
|
|
8
|
+
import VTrack from "@/";
|
|
9
|
+
import { mount, createLocalVue } from "@vue/test-utils";
|
|
10
|
+
|
|
11
|
+
const localVue = createLocalVue();
|
|
12
|
+
const mockTrackAction = jest.fn();
|
|
13
|
+
const trackEvents = {
|
|
14
|
+
18015: mockTrackAction
|
|
15
|
+
};
|
|
16
|
+
const TrackClickVIf = Vue.extend({
|
|
17
|
+
template: `
|
|
18
|
+
<track-view v-if="rest" v-track:18015 />
|
|
19
|
+
`,
|
|
20
|
+
data() {
|
|
21
|
+
return {
|
|
22
|
+
rest: null
|
|
23
|
+
};
|
|
24
|
+
},
|
|
25
|
+
created() {
|
|
26
|
+
this.fetchRest();
|
|
27
|
+
},
|
|
28
|
+
methods: {
|
|
29
|
+
async fetchRest() {
|
|
30
|
+
const response = await Promise.resolve({ data: true });
|
|
31
|
+
this.rest = response.data;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
localVue.use(VTrack, {
|
|
37
|
+
trackEvents
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
describe("TrackClickVIf", () => {
|
|
41
|
+
it("确保埋点在v-if条件为真之后再上报", done => {
|
|
42
|
+
const wrapper = mount(TrackClickVIf, {
|
|
43
|
+
localVue
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
expect(wrapper.vm.rest).toBeNull();
|
|
47
|
+
expect(mockTrackAction).toBeCalledTimes(0);
|
|
48
|
+
wrapper.vm.$nextTick(() => {
|
|
49
|
+
expect(wrapper.vm.rest).toBeTruthy();
|
|
50
|
+
expect(mockTrackAction).toBeCalledTimes(1);
|
|
51
|
+
done();
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
});
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* @Author: 宋慧武
|
|
3
|
+
* @Date: 2019-04-10 22:56:35
|
|
4
|
+
* @Last Modified by: 宋慧武
|
|
5
|
+
* @Last Modified time: 2019-04-10 23:09:38
|
|
6
|
+
*/
|
|
7
|
+
import Vue from "vue";
|
|
8
|
+
import VTrack from "@/";
|
|
9
|
+
import { mount, createLocalVue } from "@vue/test-utils";
|
|
10
|
+
|
|
11
|
+
const localVue = createLocalVue();
|
|
12
|
+
const mockTrackAction = jest.fn();
|
|
13
|
+
const trackEvents = {
|
|
14
|
+
18015: mockTrackAction
|
|
15
|
+
};
|
|
16
|
+
const $route = {
|
|
17
|
+
name: "HOME",
|
|
18
|
+
path: "/home"
|
|
19
|
+
};
|
|
20
|
+
const TrackViewWatchDelay = Vue.extend({
|
|
21
|
+
template: `
|
|
22
|
+
<track-view v-track:18015.watch.delay="{ delay: 1000, rest }" />
|
|
23
|
+
`,
|
|
24
|
+
data() {
|
|
25
|
+
return {
|
|
26
|
+
rest: null
|
|
27
|
+
};
|
|
28
|
+
},
|
|
29
|
+
created() {
|
|
30
|
+
this.fetchRest();
|
|
31
|
+
},
|
|
32
|
+
methods: {
|
|
33
|
+
async fetchRest() {
|
|
34
|
+
const response = await Promise.resolve({ data: "success" });
|
|
35
|
+
this.rest = response.data;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
localVue.use(VTrack, {
|
|
41
|
+
trackEvents
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
describe("TrackViewWatchDelay", () => {
|
|
45
|
+
it("确保埋点在Promise then之后并且延迟1000ms之后上报", done => {
|
|
46
|
+
const wrapper = mount(TrackViewWatchDelay, {
|
|
47
|
+
localVue,
|
|
48
|
+
mocks: {
|
|
49
|
+
$route
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
expect(wrapper.vm.rest).toBeNull();
|
|
54
|
+
wrapper.vm.$nextTick(() => {
|
|
55
|
+
expect(wrapper.vm.rest).toBe("success");
|
|
56
|
+
expect(mockTrackAction).toBeCalledTimes(0);
|
|
57
|
+
setTimeout(() => {
|
|
58
|
+
expect(mockTrackAction).toBeCalledTimes(1);
|
|
59
|
+
}, 1000);
|
|
60
|
+
done();
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
});
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* @Author: 宋慧武
|
|
3
|
+
* @Date: 2019-04-10 21:28:53
|
|
4
|
+
* @Last Modified by: 宋慧武
|
|
5
|
+
* @Last Modified time: 2019-04-10 23:13:33
|
|
6
|
+
*/
|
|
7
|
+
import Vue from "vue";
|
|
8
|
+
import VTrack from "@/";
|
|
9
|
+
import { mount, createLocalVue } from "@vue/test-utils";
|
|
10
|
+
|
|
11
|
+
const localVue = createLocalVue();
|
|
12
|
+
const mockTrackAction = jest.fn();
|
|
13
|
+
const trackEvents = {
|
|
14
|
+
18015: mockTrackAction
|
|
15
|
+
};
|
|
16
|
+
const $route = {
|
|
17
|
+
name: "HOME",
|
|
18
|
+
path: "/home"
|
|
19
|
+
};
|
|
20
|
+
const TrackClickWatch = Vue.extend({
|
|
21
|
+
template: `
|
|
22
|
+
<track-view v-track:18015.watch="{ rest }" />
|
|
23
|
+
`,
|
|
24
|
+
data() {
|
|
25
|
+
return {
|
|
26
|
+
rest: null
|
|
27
|
+
};
|
|
28
|
+
},
|
|
29
|
+
created() {
|
|
30
|
+
this.fetchRest();
|
|
31
|
+
},
|
|
32
|
+
methods: {
|
|
33
|
+
async fetchRest() {
|
|
34
|
+
const response = await Promise.resolve({ data: "success" });
|
|
35
|
+
this.rest = response.data;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
localVue.use(VTrack, {
|
|
41
|
+
trackEvents
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
describe("TrackClickWatch", () => {
|
|
45
|
+
it("确保埋点在Promise then之后上报", done => {
|
|
46
|
+
const wrapper = mount(TrackClickWatch, {
|
|
47
|
+
localVue,
|
|
48
|
+
mocks: {
|
|
49
|
+
$route
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
expect(wrapper.vm.rest).toBeNull();
|
|
54
|
+
expect(mockTrackAction).toBeCalledTimes(0);
|
|
55
|
+
wrapper.vm.$nextTick(() => {
|
|
56
|
+
expect(wrapper.vm.rest).toBe("success");
|
|
57
|
+
expect(mockTrackAction).toBeCalledTimes(1);
|
|
58
|
+
done();
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
});
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* @Author: 宋慧武
|
|
3
|
+
* @Date: 2019-04-10 21:28:53
|
|
4
|
+
* @Last Modified by: 宋慧武
|
|
5
|
+
* @Last Modified time: 2019-04-12 22:51:40
|
|
6
|
+
*/
|
|
7
|
+
import Vue from "vue";
|
|
8
|
+
import VTrack from "@/";
|
|
9
|
+
import { mount, createLocalVue } from "@vue/test-utils";
|
|
10
|
+
|
|
11
|
+
const localVue = createLocalVue();
|
|
12
|
+
const mockTrackAction = jest.fn(() => true);
|
|
13
|
+
const trackEvents = {
|
|
14
|
+
18015: mockTrackAction
|
|
15
|
+
};
|
|
16
|
+
const TrackView = Vue.extend({
|
|
17
|
+
template: `
|
|
18
|
+
<track-view v-track:18015 />
|
|
19
|
+
`
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
localVue.use(VTrack, {
|
|
23
|
+
trackEvents
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
describe("TrackView", () => {
|
|
27
|
+
it("确保初始化埋点正常上报", () => {
|
|
28
|
+
mount(TrackView, { localVue });
|
|
29
|
+
expect(mockTrackAction).toBeTruthy();
|
|
30
|
+
expect(mockTrackAction).toBeCalledTimes(1);
|
|
31
|
+
});
|
|
32
|
+
});
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
const path = require("path");
|
|
2
|
+
const isProd = process.env.NODE_ENV !== "production";
|
|
3
|
+
|
|
4
|
+
module.exports = {
|
|
5
|
+
lintOnSave: isProd,
|
|
6
|
+
outputDir: "./docs/dist",
|
|
7
|
+
publicPath: isProd ? "./" : "./dist/",
|
|
8
|
+
indexPath: "../index.html",
|
|
9
|
+
|
|
10
|
+
configureWebpack: {
|
|
11
|
+
entry: {
|
|
12
|
+
app: path.resolve(__dirname, "./docs/main.js")
|
|
13
|
+
},
|
|
14
|
+
resolve: {
|
|
15
|
+
alias: {
|
|
16
|
+
"@": path.resolve(__dirname, "./docs")
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
performance: {
|
|
20
|
+
maxEntrypointSize: 1000000,
|
|
21
|
+
maxAssetSize: 1000000
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
|
|
25
|
+
chainWebpack: config => {
|
|
26
|
+
config.module.rule("js").include.add(path.resolve(__dirname, "./docs"));
|
|
27
|
+
|
|
28
|
+
config.module
|
|
29
|
+
.rule("vue")
|
|
30
|
+
.use("vue-loader")
|
|
31
|
+
.loader("vue-loader")
|
|
32
|
+
.tap(options => {
|
|
33
|
+
options.compilerOptions.preserveWhitespace = true;
|
|
34
|
+
return options;
|
|
35
|
+
});
|
|
36
|
+
},
|
|
37
|
+
|
|
38
|
+
css: {
|
|
39
|
+
loaderOptions: {
|
|
40
|
+
sass: {
|
|
41
|
+
data: `@import "~@/assets/index.scss";`
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
};
|