как мне rm dir при сборке машинописного текста с помощью rollup и rollup-plugin-typescript2? - PullRequest
0 голосов
/ 02 августа 2020

без изменения структуры каталогов, как мне получить файлы .d.ts и. js, исключить каталог helloWorld

структура исходных каталогов

структура исходных каталогов

я получил это

мне не нужен каталог, просто helloWorld. js и helloWorld.ts на одном уровне сборка с накоплением

я хочу это

helloWorld. js и helloWorld.ts на одном уровне хочу эту структуру каталога

rollup.config.ts

import path from 'path'
import glob from 'glob'
import commonjs from '@rollup/plugin-commonjs'
import resolve from '@rollup/plugin-node-resolve'
import json from '@rollup/plugin-json'
import typescript from 'rollup-plugin-typescript2'
import { terser } from 'rollup-plugin-terser'
import babel from '@rollup/plugin-babel'

import { name } from './package.json'

const extensions = ['.ts', '.js']
const singleFileInput = {}

glob.sync('src/!(_)*/!(_)*.ts').forEach((files) => {
    const fileName = path.basename(path.dirname(files))
    singleFileInput[fileName] = files
})

const paths = {
    singleFileInput,
    input: 'src/index.ts',
    outputCJS: path.join(__dirname, '/lib/cjs'),
    outputES: path.join(__dirname, '/lib/es'),
    outputUMD: path.join(__dirname, '/lib/umd'),
    outputIIFE: path.join(__dirname, '/lib/iife'),
}

const globals = {
    lodash: 'lodash',
}

const plugins = [
    json(),
    resolve({
        extensions,
    }),
    commonjs(),

    typescript({
        tsconfig: './tsconfig.es.json'
    }),
    babel({
        exclude: 'node_modules/**',
        extensions,
    }),
]

const rollupConfig = [
    {
        input: paths.singleFileInput,
        output: {
            dir: paths.outputES,
            format: 'esm',
            // exports: 'named',
            // chunkFileNames: `${paths.outputES}/[name].js`,
        },
        external: ['lodash'],
        plugins: [...plugins],
    },
    {
        input: paths.input,
        output: {
            file: `${paths.outputUMD}/index.js`,
            format: 'umd',
            name,
            globals,
        },
        external: ['lodash'],
        plugins: [...plugins],
    },
    {
        input: paths.input,
        output: {
            file: `${paths.outputUMD}/index.min.js`,
            format: 'umd',
            name,
            globals,
        },
        external: ['lodash'],
        plugins: [...plugins, terser()],
    },
]

export default rollupConfig

tsconfig. json

{
    "include": [
        "src/**/*.ts"
    ],
    "exclude": [
        "node_modules",
        "src/**/*.test.ts"
    ],
    "compilerOptions": {
        "resolveJsonModule": true,
        "target": "ESNEXT",
        "module": "commonjs" ,                     
        "declaration": true,                  
        "removeComments": true,
        "strict": true,
        "noImplicitAny": false ,
       
        "moduleResolution": "node",
        "esModuleInterop": true,
        "skipLibCheck": true /* Skip type checking of declaration files. */,
        "forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */
    }
}

tsconfig.es. json

{
    "extends": "./tsconfig.json",
    "compilerOptions": {
        "module": "esnext"
    }
}
...