1
0
mirror of https://github.com/troisjs/trois.git synced 2024-11-23 20:02:32 +08:00

update ts conf

This commit is contained in:
Kevin Levron 2021-04-26 19:05:12 +02:00
parent 0bfac37f53
commit 79f1512a1e
5 changed files with 75 additions and 80 deletions

3
.vscode/settings.json vendored Normal file
View File

@ -0,0 +1,3 @@
{
"volar.tsPlugin": true
}

13
api-extractor.json Normal file
View File

@ -0,0 +1,13 @@
{
"mainEntryPointFilePath": "./types/export.d.ts",
"apiReport": {
"enabled": true
},
"docModel": {
"enabled": true
},
"dtsRollup": {
"enabled": true,
"publicTrimmedFilePath": "./dist/trois.d.ts"
}
}

View File

@ -7,9 +7,9 @@
"rollup": "rollup -c" "rollup": "rollup -c"
}, },
"devDependencies": { "devDependencies": {
"@microsoft/api-extractor": "^7.14.0",
"@rollup/plugin-buble": "^0.21.3", "@rollup/plugin-buble": "^0.21.3",
"@rollup/plugin-replace": "^2.3.3", "@rollup/plugin-replace": "^2.3.3",
"@rollup/plugin-typescript": "^8.2.1",
"@types/three": "^0.127.1", "@types/three": "^0.127.1",
"@typescript-eslint/eslint-plugin": "^4.22.0", "@typescript-eslint/eslint-plugin": "^4.22.0",
"@typescript-eslint/parser": "^4.22.0", "@typescript-eslint/parser": "^4.22.0",
@ -26,17 +26,20 @@
"eslint-plugin-vue": "^7.9.0", "eslint-plugin-vue": "^7.9.0",
"gsap": "^3.5.1", "gsap": "^3.5.1",
"rollup-plugin-terser": "^7.0.2", "rollup-plugin-terser": "^7.0.2",
"rollup-plugin-typescript2": "^0.30.0",
"rollup-plugin-vue": "^6.0.0-beta.11", "rollup-plugin-vue": "^6.0.0-beta.11",
"stats.js": "0.17.0", "stats.js": "0.17.0",
"three": "^0.127", "three": "^0.127",
"typescript": "^4.1.3", "tslib": "^2.2.0",
"typescript": "^4.1.5",
"vite": "^2.1.5", "vite": "^2.1.5",
"vue": "^3.0.11", "vue": "^3.0.11",
"vue-eslint-parser": "^7.6.0", "vue-eslint-parser": "^7.6.0",
"vue-tsc": "^0.0.24" "vue-tsc": "^0.0.25"
}, },
"main": "build/trois.js", "main": "build/trois.js",
"module": "build/trois.module.js", "module": "build/trois.module.js",
"typings": "build/trois.d.ts",
"repository": { "repository": {
"type": "git", "type": "git",
"url": "git+https://github.com/troisjs/trois.git" "url": "git+https://github.com/troisjs/trois.git"

View File

@ -1,11 +1,14 @@
// import commonjs from '@rollup/plugin-commonjs'; import path from 'path'
import vue from 'rollup-plugin-vue' import vue from 'rollup-plugin-vue'
// import buble from '@rollup/plugin-buble'; import typescript from 'rollup-plugin-typescript2'
import { terser } from "rollup-plugin-terser"
import replace from '@rollup/plugin-replace' import replace from '@rollup/plugin-replace'
import typescript from '@rollup/plugin-typescript' import { terser } from "rollup-plugin-terser"
// ensure TS checks only once for each build
let hasTSChecked = false
const input = 'src/export.ts' const input = 'src/export.ts'
const external = [ const external = [
'three', 'three',
'three/examples/jsm/controls/OrbitControls.js', 'three/examples/jsm/controls/OrbitControls.js',
@ -37,78 +40,42 @@ const cdnReplaces = {
delimiters: ['', ''], delimiters: ['', ''],
} }
const plugins = [ function createConfig(format, output, plugins = []) {
typescript(), const tsPlugin = typescript({
vue(), check: false, // !hasTSChecked,
// buble({ cacheRoot: path.resolve(__dirname, 'node_modules/.tscache'),
// transforms: { asyncAwait: false, forOf: false }, tsconfigOverride: {
// objectAssign: 'Object.assign', compilerOptions: {
// }), sourceMap: false, // !hasTSChecked,
] declaration: false, // !hasTSChecked,
declarationMap: false, // !hasTSChecked,
},
include: [input],
},
})
hasTSChecked = true
return {
input,
external,
output: {
format,
...output,
// exports: 'named',
sourcemap: true,
},
plugins: [
tsPlugin,
vue(),
...plugins,
],
}
}
export default [ export default [
{ createConfig('es', { file: 'build/trois.module.cdn.js' }, [replace(cdnReplaces)]),
input, createConfig('es', { file: 'build/trois.module.cdn.min.js' }, [replace(cdnReplaces), terser()]),
external, createConfig('es', { file: 'build/trois.module.js' }),
output: { createConfig('es', { file: 'build/trois.module.min.js' }, [terser()]),
format: 'es', createConfig('cjs', { file: 'build/trois.js' }),
exports: 'named',
file: 'build/trois.module.cdn.js',
sourcemap: true,
},
plugins: [
replace(cdnReplaces),
...plugins,
],
},
{
input,
external,
output: {
format: 'es',
exports: 'named',
file: 'build/trois.module.cdn.min.js',
sourcemap: true,
},
plugins: [
replace(cdnReplaces),
...plugins,
terser(),
],
},
{
input,
external,
output: {
format: 'es',
exports: 'named',
file: 'build/trois.module.js',
sourcemap: true,
},
plugins,
},
{
input,
external,
output: {
format: 'es',
exports: 'named',
file: 'build/trois.module.min.js',
sourcemap: true,
},
plugins: [
...plugins,
terser(),
],
},
{
input,
external,
output: {
format: 'cjs',
file: 'build/trois.js',
sourcemap: true,
},
plugins,
},
] ]

View File

@ -5,8 +5,17 @@
// this enables stricter inference for data properties on `this` // this enables stricter inference for data properties on `this`
"strict": true, "strict": true,
"moduleResolution": "node", "moduleResolution": "node",
// "esModuleInterop": true,
// "lib": ["esnext", "dom"],
// "types": ["vite/client"],
"sourceMap": true, "sourceMap": true,
"declaration": true,
"declarationMap": true,
"outDir": "types",
}, },
"include": ["src/**/*.ts", "src/**/*.vue"], "include": ["src/**/*.ts", "src/**/*.vue"],
"exclude": ["node_modules", "src/App.vue"] // "include": ["src/export.ts"],
// "exclude": ["src/App.vue", "src/main.ts"],
} }