Skip to content

Commit 6886c30

Browse files
authored
Merge pull request #1 from imcvampire/master
从fork来源处合并代码
2 parents 78d2c6e + 7985e40 commit 6886c30

File tree

10 files changed

+4461
-1253
lines changed

10 files changed

+4461
-1253
lines changed

.github/workflows/npm-publish.yml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
name: Node.js Package
2+
3+
on:
4+
release:
5+
types: [created]
6+
7+
jobs:
8+
build:
9+
runs-on: ubuntu-latest
10+
steps:
11+
- uses: actions/checkout@v2
12+
- uses: actions/setup-node@v1
13+
with:
14+
node-version: 12
15+
- run: npm ci
16+
- run: npx gulp
17+
18+
publish-npm:
19+
needs: build
20+
runs-on: ubuntu-latest
21+
steps:
22+
- uses: actions/checkout@v2
23+
- uses: actions/setup-node@v1
24+
with:
25+
node-version: 12
26+
registry-url: https://registry.npmjs.org/
27+
- run: npm ci
28+
- run: npx gulp
29+
- run: npm publish
30+
env:
31+
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,3 +35,5 @@ jspm_packages
3535

3636
# Optional REPL history
3737
.node_repl_history
38+
39+
dist/

Gulpfile.js

Lines changed: 71 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,73 @@
1+
// Gulp
12
const gulp = require('gulp');
2-
const babel = require('gulp-babel');
3-
const uglify = require('gulp-uglifyjs');
4-
const rename = require('gulp-rename');
5-
6-
gulp.task('default', () => {
7-
return gulp.src('src/index.js')
8-
.pipe(babel({
9-
presets: ['es2015']
10-
}))
11-
.pipe(rename('vue-axios.es5.js'))
12-
.pipe(gulp.dest('dist'))
13-
.pipe(uglify())
14-
.pipe(rename('vue-axios.min.js'))
15-
.pipe(gulp.dest('dist'));
3+
const plumber = require('gulp-plumber');
4+
const file = require('gulp-file');
5+
const filter = require('gulp-filter');
6+
const merge = require('merge-stream');
7+
const sourcemaps = require('gulp-sourcemaps');
8+
const uglify = require('gulp-uglify');
9+
const clean = require('gulp-clean');
10+
const commonjs = require('@rollup/plugin-commonjs')
11+
12+
// Rollup
13+
const { rollup } = require('rollup');
14+
const babel = require('rollup-plugin-babel');
15+
const { nodeResolve } = require('@rollup/plugin-node-resolve')
16+
17+
// Const
18+
const buildPath = 'dist/';
19+
20+
/**
21+
* Generate scripts with commonjs module
22+
* @param {import('rollup').RollupBuild} bundle
23+
*/
24+
function bundleCommonJs(bundle) {
25+
return bundle.generate({
26+
format: 'commonjs',
27+
});
28+
}
29+
30+
/**
31+
* Bundle index.js using rollup + babel
32+
*/
33+
async function bundle() {
34+
const bundle = await rollup({
35+
input: 'src/index.js',
36+
plugins: [
37+
nodeResolve({ browser: true }),
38+
commonjs(),
39+
babel({
40+
presets: [
41+
["@babel/env"]
42+
],
43+
sourceMaps: true
44+
})
45+
]
46+
});
47+
return bundleCommonJs(bundle);
48+
}
49+
50+
gulp.task('build', async function () {
51+
const generatedBundle = await bundle();
52+
const f = filter(['*', '!**/*.js.map',], { restore: true });
53+
const data = ['vue-axios.es5.js', 'vue-axios.min.js'];
54+
const streams = data.map((name) => {
55+
return file(name, generatedBundle.output.map(o => o.code).join(" "), { src: true })
56+
.pipe(plumber())
57+
.pipe(sourcemaps.init({ loadMaps: true }))
58+
.pipe(f)
59+
.pipe(uglify())
60+
.pipe(sourcemaps.write('./'))
61+
.pipe(gulp.dest(buildPath));
62+
});
63+
64+
return merge(streams);
1665
});
66+
67+
gulp.task('clean', function () {
68+
return gulp.src('dist/*').pipe(clean({
69+
force: true
70+
}));
71+
})
72+
73+
gulp.task('default', gulp.series('clean', 'build'))

README.md

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,37 @@
11
# vue-axios
22
A small wrapper for integrating axios to Vuejs
33

4+
## Support matrix
5+
6+
|VueJS \ VueAxios|1.x|2.x|3.x|
7+
|-|-|-|-|
8+
|1.x|✔|✔|✔|
9+
|2.x|✔|✔|✔|
10+
|3.x|❌|❌|✔|
11+
412
## How to install:
5-
### CommonJS:
13+
### ES6 Module:
614
```bash
715
npm install --save axios vue-axios
816
```
9-
10-
And in your entry file:
17+
Import libraries in entry file:
1118
```js
1219
import Vue from 'vue'
1320
import axios from 'axios'
1421
import VueAxios from 'vue-axios'
22+
```
1523

24+
Usage in Vue 2:
25+
```js
1626
Vue.use(VueAxios, axios)
1727
```
1828

29+
Usage in Vue 3:
30+
```js
31+
const app = Vue.createApp(...)
32+
app.use(VueAxios, axios)
33+
```
34+
1935
### Script:
2036
Just add 3 scripts in order: `vue`, `axios` and `vue-axios` to your `document`.
2137

dist/vue-axios.es5.js

Lines changed: 0 additions & 53 deletions
This file was deleted.

dist/vue-axios.min.js

Lines changed: 0 additions & 1 deletion
This file was deleted.

index.d.ts

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,17 @@
1-
import Vue, {PluginFunction, PluginObject} from "vue";
21
import { AxiosStatic } from "axios";
2+
import { App } from "vue";
33

4-
declare module "vue/types/vue" {
5-
6-
interface Vue {
7-
axios: AxiosStatic;
4+
declare module "@vue/runtime-core" {
5+
export interface ComponentCustomProperties {
86
$http: AxiosStatic;
7+
axios: AxiosStatic;
98
}
109

11-
interface VueConstructor {
10+
export interface App {
1211
axios: AxiosStatic;
1312
}
1413
}
1514

16-
declare class VueAxios {
17-
static install: PluginFunction<AxiosStatic>;
18-
}
15+
declare function VueAxios(app: App, axios: AxiosStatic): void;
1916

2017
export default VueAxios;

0 commit comments

Comments
 (0)