如何解决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 举报,一经查实,本站将立刻删除。