npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@qiushaocloud/webpack-dts-bundle-plugin

v1.0.2

Published

this is an npm package of qiushaocloud webpack dts bundle plugin

Downloads

4

Readme

介绍

主要封装一个 dts bundle 插件,依赖 dts-bundle, 主要作用是将多个 d.ts 根据引用关系合成一个 d.ts

项目源码

  • 自建 gitlab 地址: https://gitlab.qiushaocloud.top/qiushaocloud/webpack-qplugins
  • github 地址: https://github.com/qiushaocloud/webpack-qplugins

npm 包

  • 安装 npm 包: npm install --save-dev @qiushaocloud/webpack-dts-bundle-plugin

插件 TS 定义

declare module '@qiushaocloud/webpack-dts-bundle-plugin' {
    import { Compiler } from 'webpack';

    /**
        var dtsBundleOptions = {
            // Required
        
            // name of module likein package.json
            // - used to declare module & import/require
            name: 'cool-project',
            // path to entry-point (generated .d.ts file for main module)
            // if you want to load all .d.ts files from a path recursively you can use "path/project\/**\/*.d.ts"
            //  ^ *** Experimental, TEST NEEDED, see "All .d.ts files" section 
            // - either relative or absolute
            main: 'build/index.d.ts',
        
            // Optional
        
            // base directory to be used for discovering type declarations (i.e. from this project itself)
            // - default: dirname of main
            baseDir: 'build',
            // path of output file. Is relative from baseDir but you can use absolute paths. 
            // if starts with "~/" then is relative to current path. See https://github.com/TypeStrong/dts-bundle/issues/26
            //  ^ *** Experimental, TEST NEEDED    
            // - default: "<baseDir>/<name>.d.ts"
            out: 'dist/cool-project.d.ts',
            // include typings outside of the 'baseDir' (i.e. like node.d.ts)
            // - default: false
            externals: false,
            // reference external modules as <reference path="..." /> tags *** Experimental, TEST NEEDED
            // - default: false
            referenceExternals: false,
            // filter to exclude typings, either a RegExp or a callback. match path relative to opts.baseDir
            // - RegExp: a match excludes the file
            // - function: (file:String, external:Boolean) return true to exclude, false to allow
            // - always use forward-slashes (even on Windows)
            // - default: *pass*
            exclude: /^defs\/$/,
            // delete all source typings (i.e. "<baseDir>\/**\/*.d.ts")
            // - default: false
            removeSource: false,
            // newline to use in output file
            newline: os.EOL,
            // indentation to use in output file
            // - default 4 spaces
            indent: '	',
            // prefix for rewriting module names
            // - default ''
            prefix: '__',
            // separator for rewriting module 'path' names
            // - default: forward slash (like sub-modules)
            separator: '/',
            // enable verbose mode, prints detailed info about all references and includes/excludes
            // - default: false
            verbose: false,
            // emit although included files not found. See "Files not found" section. 
            // *** Experimental, TEST NEEDED
            // - default: false 
            emitOnIncludedFileNotFound: false,
            // emit although no included files not found. See "Files not found" section. 
            // *** Experimental, TEST NEEDED
            // - default: false     
            emitOnNoIncludedFileNotFound: false,    
            // output d.ts as designed for module folder. (no declare modules)
            outputAsModuleFolder: false,
            // path to file that contains the header
            // // insert a header in output file. i.e.: http://definitelytyped.org/guides/contributing.html#header
            // - default: null
            headerPath: "path/to/header/file",
            // text of the the header
            // doesn't work with headerPath
            // // insert a header in output file. i.e.: http://definitelytyped.org/guides/contributing.html#header
            // - default: ''
            headerTex: "" 
        };
    */
    export type IDtsBundleOptions = {
        name: string;
        main: string;
        baseDir?: string | undefined;
        out?: string | undefined;
        externals?: boolean | undefined;
        referenceExternals?: boolean | undefined;
        exclude?: RegExp | ((file: string, external: boolean) => boolean) | undefined;
        removeSource?: boolean | undefined;
        newLine?: string | undefined;
        indent?: string | undefined;
        prefix?: string | undefined;
        separator?: string | undefined;
        verbose?: boolean | undefined;
        emitOnIncludedFileNotFound?: boolean | undefined;
        emitOnNoIncludedFileNotFound?: boolean | undefined;
        outputAsModuleFolder?: boolean | undefined;
        headerPath?: string | undefined;
        headerText?: string | undefined;
    };


    export class WebpackDtsBundlePlugin {
        constructor(
            dtsBundleOptions?: IDtsBundleOptions,
            beforeCallback?: (dtsBundleOptions?: IDtsBundleOptions, ...args: any[]) => void,
            afterCallback?: (dtsBundleOptions?: IDtsBundleOptions, ...args: any[]) => void,
            applyCompiler?: (compiler: Compiler, dtsBundleOptions?: IDtsBundleOptions) => void
        );

        apply(compiler: Compiler): void;
    }
}

插件使用示例

// 使用方式1: 不使用回调
module.exports = {
  plugins:[
    // 传入插件实例
    new WebpackDtsBundlePlugin({
      name: '@qiushaocloud/xxxxxx',
      main: path.resolve(__dirname, './dist-dts/main.d.ts'),
      out: path.resolve(__dirname, './dist/xxxxxx.d.ts')
    }),
  ]
};

// 使用方式2: 使用回调
module.exports = {
  plugins:[
    // 传入插件实例
    new WebpackDtsBundlePlugin(
      {
        name: '@qiushaocloud/xxxxxx',
        main: path.resolve(__dirname, './dist-dts/main.d.ts'),
        out: path.resolve(__dirname, './dist/xxxxxx.d.ts')
      }, (options, ...args) => {
        // beforeCallback handle code ...
      }, (options, ...args) => {
        // afterCallback handle code ...
      }
      // , (compiler, options) => {
      //   // applyCompiler handle code ...
      // }
    ),
  ]
};

开源不易,如果对您有帮助,请您动一动您的小手,给作者点 Star,也请您多多关注分享者「邱少羽梦