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"
},
"devDependencies": {
"@microsoft/api-extractor": "^7.14.0",
"@rollup/plugin-buble": "^0.21.3",
"@rollup/plugin-replace": "^2.3.3",
"@rollup/plugin-typescript": "^8.2.1",
"@types/three": "^0.127.1",
"@typescript-eslint/eslint-plugin": "^4.22.0",
"@typescript-eslint/parser": "^4.22.0",
@ -26,17 +26,20 @@
"eslint-plugin-vue": "^7.9.0",
"gsap": "^3.5.1",
"rollup-plugin-terser": "^7.0.2",
"rollup-plugin-typescript2": "^0.30.0",
"rollup-plugin-vue": "^6.0.0-beta.11",
"stats.js": "0.17.0",
"three": "^0.127",
"typescript": "^4.1.3",
"tslib": "^2.2.0",
"typescript": "^4.1.5",
"vite": "^2.1.5",
"vue": "^3.0.11",
"vue-eslint-parser": "^7.6.0",
"vue-tsc": "^0.0.24"
"vue-tsc": "^0.0.25"
},
"main": "build/trois.js",
"module": "build/trois.module.js",
"typings": "build/trois.d.ts",
"repository": {
"type": "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 buble from '@rollup/plugin-buble';
import { terser } from "rollup-plugin-terser"
import typescript from 'rollup-plugin-typescript2'
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 external = [
'three',
'three/examples/jsm/controls/OrbitControls.js',
@ -37,78 +40,42 @@ const cdnReplaces = {
delimiters: ['', ''],
}
const plugins = [
typescript(),
vue(),
// buble({
// transforms: { asyncAwait: false, forOf: false },
// objectAssign: 'Object.assign',
// }),
]
function createConfig(format, output, plugins = []) {
const tsPlugin = typescript({
check: false, // !hasTSChecked,
cacheRoot: path.resolve(__dirname, 'node_modules/.tscache'),
tsconfigOverride: {
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 [
{
input,
external,
output: {
format: 'es',
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,
},
createConfig('es', { file: 'build/trois.module.cdn.js' }, [replace(cdnReplaces)]),
createConfig('es', { file: 'build/trois.module.cdn.min.js' }, [replace(cdnReplaces), terser()]),
createConfig('es', { file: 'build/trois.module.js' }),
createConfig('es', { file: 'build/trois.module.min.js' }, [terser()]),
createConfig('cjs', { file: 'build/trois.js' }),
]

View File

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