Skip to content

Commit

Permalink
feat: ships nuxt moudle
Browse files Browse the repository at this point in the history
  • Loading branch information
antfu committed Aug 21, 2021
1 parent 1b765db commit ad0a9af
Show file tree
Hide file tree
Showing 13 changed files with 9,723 additions and 3,330 deletions.
1 change: 1 addition & 0 deletions .npmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
shamefully-hoist=true
18 changes: 18 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,24 @@ export default defineConfig({
})
```

###### Nuxt

```bash
npm i @nuxtjs/composition-api
```

```ts
// nuxt.config.js
export default {
buildModules: [
'@nuxtjs/composition-api/module',
'vue2-script-setup-transform/nuxt',
],
}
```

See [`examples/nuxt`](./examples/nuxt).

###### Webpack

```ts
Expand Down
38 changes: 38 additions & 0 deletions examples/nuxt/components/HelloWorld.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
<template>
<div>
<h3>{{ msg }}, {{ name }}</h3>
<button @click="inc">
Inc
</button>
<div>{{ count }} x 2 = {{ doubled }}</div>
<button @click="dec()" v-html="decText" />
</div>
</template>

<script setup lang="ts">
import { ref, computed, watch } from '@vue/composition-api'
const props = withDefaults(defineProps<{ msg: string; name: string | number }>(), { msg: 'Hello' })
const emit = defineEmits(['update'])
const count = ref(0)
const doubled = computed(() => count.value * 2)
function inc() {
count.value += 1
}
function dec() {
count.value += 1
}
const decText = '<b>Dec</b>'
watch(count, value => emit('update', value))
</script>

<script lang="ts">
export default {
name: 'App'
}
</script>
7 changes: 7 additions & 0 deletions examples/nuxt/nuxt.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
export default {
buildModules: [
'@nuxt/typescript-build',
'@nuxtjs/composition-api/module',
'vue2-script-setup-transform/nuxt',
],
}
21 changes: 21 additions & 0 deletions examples/nuxt/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"name": "nuxt-example",
"version": "1.0.0",
"private": true,
"scripts": {
"dev": "nuxt",
"build": "nuxt build",
"start": "nuxt start",
"generate": "nuxt generate"
},
"dependencies": {
"core-js": "^3.15.1",
"nuxt": "^2.15.7"
},
"devDependencies": {
"@nuxt/types": "^2.15.8",
"@nuxt/typescript-build": "^2.1.0",
"@nuxtjs/composition-api": "^0.27.0",
"vue2-script-setup-transform": "workspace:*"
}
}
13 changes: 13 additions & 0 deletions examples/nuxt/pages/index.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<template>
<div>
<hello-world name="Vue 2" @update="onUpdate" />
</div>
</template>

<script setup lang="ts">
import HelloWorld from '../components/HelloWorld.vue'
function onUpdate(e: any) {
console.log(e)
}
</script>
33 changes: 33 additions & 0 deletions examples/nuxt/tsconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
{
"compilerOptions": {
"target": "ES2018",
"module": "ESNext",
"moduleResolution": "Node",
"lib": [
"ESNext",
"ESNext.AsyncIterable",
"DOM"
],
"esModuleInterop": true,
"allowJs": true,
"sourceMap": true,
"strict": true,
"noEmit": true,
"baseUrl": ".",
"paths": {
"~/*": [
"./*"
],
"@/*": [
"./*"
]
},
"types": [
"@types/node",
"@nuxt/types"
]
},
"exclude": [
"node_modules"
]
}
2 changes: 2 additions & 0 deletions nuxt.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
import './global'
export * from './dist/nuxt'
9 changes: 7 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,10 @@
"./webpack-plugin": {
"require": "./dist/webpack-plugin.js",
"import": "./dist/webpack-plugin.mjs"
},
"./nuxt": {
"require": "./dist/nuxt.js",
"import": "./dist/nuxt.mjs"
}
},
"funding": "https://github.com/sponsors/antfu",
Expand All @@ -38,7 +42,7 @@
"scripts": {
"prepublishOnly": "nr build",
"dev": "nr build --watch",
"build": "tsup src/index.ts src/vite-plugin.ts src/webpack-plugin.ts --format cjs,esm --dts --no-splitting",
"build": "rimraf dist && tsup src/index.ts src/vite-plugin.ts src/webpack-plugin.ts src/nuxt.ts --format cjs,esm --dts",
"play": "npm -C playground run dev",
"release": "bumpp --commit --push --tag && pnpm publish",
"lint": "eslint \"{src,test}/**/*.ts\"",
Expand All @@ -57,6 +61,7 @@
"eslint-plugin-jest": "^24.4.0",
"esno": "^0.9.1",
"jest": "^27.0.6",
"rimraf": "^3.0.2",
"ts-jest": "^27.0.5",
"tsup": "^4.14.0",
"typescript": "^4.3.5",
Expand All @@ -71,6 +76,6 @@
"@vue/shared": "^3.2.4",
"htmlparser2": "^6.1.0",
"magic-string": "^0.25.7",
"unplugin": "^0.0.5"
"unplugin": "^0.0.6"
}
}
Loading

0 comments on commit ad0a9af

Please sign in to comment.