微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Webpack + Typescript,无法为 npm 包创建自己的 .d.ts 文件

如何解决Webpack + Typescript,无法为 npm 包创建自己的 .d.ts 文件

我刚刚花了几个小时试图让 webpack 识别我制作的一个 .d.ts 文件,这个文件是关于我想使用的一个没有 @types 包的小模块(png-to-jpeg ,一个 imagemin 插件)。

导入是最基本的:

import pngToJpeg from "png-to-jpeg";

这是 src/typings/png-to-jpeg/index.d.ts 文件

declare module "png-to-jpeg" {
    export default import("imagemin").Plugin;
}

我的 IDE (VSCode) 似乎对它很满意,它在我添加文件后立即删除错误,但 webpack 拒绝识别它,我不得不回退到 require 才能使其工作。这是我的 webpack 配置:

/* eslint-disable @typescript-eslint/no-var-requires */
/* eslint-disable no-undef */
const path = require("path");
const dotenv = require("dotenv");
const TsconfigPathsPlugin = require("tsconfig-paths-webpack-plugin");
const nodeExternals = require("webpack-node-externals");
const nodemonPlugin = require("nodemon-webpack-plugin");

dotenv.config();



module.exports = env => {
    const {
        NODE_ENV = typeof env.NODE_ENV === "string" ? process.env.NODE_ENV : "production"
    } = env;
    return {
        entry: "./index.ts",mode: NODE_ENV,target: "node",output: {
            path: path.resolve(__dirname,"build"),filename: "index.js"
        },resolve: {
            extensions: [".ts",".js",".d.ts"],plugins: [new TsconfigPathsPlugin({ })],},watch: NODE_ENV === "development",module: {
            rules: [
                {
                    test: /\.ts$/,use: [
                        "ts-loader",]
                }
            ]
        },externals: [nodeExternals()],plugins: [
            new nodemonPlugin(),],};
};

使用 webpack --env NODE_ENV=development 启动的

如果您有任何想法,那就太好了,谢谢

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。