webpack5打包一个TS 库并发布到npm 一条龙实战教程(附模板代码)
以下是一个简化的Webpack 5打包TypeScript库的配置示例,并包含了发布到NPM的基本步骤。
// webpack.config.js
const path = require('path');
const { CleanWebpackPlugin } = require('clean-webpack-plugin');
const TerserPlugin = require('terser-webpack-plugin');
const packageJson = require('./package.json');
module.exports = {
mode: 'production',
entry: './src/index.ts',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'index.js',
library: {
name: 'myLibrary',
type: 'umd', // 支持amd, commonjs2, umd
},
clean: true,
},
resolve: {
extensions: ['.ts', '.tsx', '.js'],
},
module: {
rules: [
{
test: /\.(ts|js)x?$/,
exclude: /node_modules/,
use: {
loader: 'babel-loader',
options: {
presets: [
'@babel/preset-env',
],
plugins: [
'@babel/plugin-proposal-class-properties',
'@babel/plugin-proposal-object-rest-spread',
],
},
},
},
],
},
optimization: {
minimize: true,
minimizer: [new TerserPlugin({
terserOptions: {
output: {
comments: false,
},
},
extractComments: false,
})],
},
plugins: [new CleanWebpackPlugin()],
};
这个配置文件定义了如何编译和打包TypeScript代码,同时也包括了使用Babel来转换现代JavaScript特性,以确保代码可以在多种环境中运行。还包括了使用TerserPlugin来压缩输出的JavaScript代码。
发布到NPM的步骤通常包括以下命令:
- 确保你的
package.json
文件已经正确填写。 - 确保你有一个NPM账号,并且登录到了NPM。
- 运行
npm publish
来发布你的库。
确保你已经在package.json
中设置了正确的入口文件(main
字段),例如:
{
"name": "my-library",
"version": "1.0.0",
"description": "My TypeScript Library",
"main": "dist/index.js",
// ...
}
在发布之前,确保你已经测试和验证了库的所有功能。如果你需要更新版本,请更新version
字段,并重新发布。
评论已关闭