01-custom-library-npm

中文文档
1.0.2发布于 2022/02/28ISCESM + CJS零依赖
 npm init -y
 npm i webpack webpack-cli lodash -D

2)配置webpack

  • 将项目中使用lodash也打包进项目中,增大了项目的体积(不推荐)
// webpack.config.js
const path = require('path')
中文使用文档
文档目录6 节
  1. 1、项目搭建
  2. 2、发布流程
  3. 3、更新包
  4. 4、发布注意问题
  5. 5、测试
  6. 5、webpack支持es模块引入

1、项目搭建

1)项目初始化安装依赖

npm init -y
npm i webpack webpack-cli lodash -D

2)配置webpack

  • 将项目中使用lodash也打包进项目中,增大了项目的体积(不推荐)
// webpack.config.js
const path = require('path')

module.exports = {
  mode: 'development',
  entry: './src/index.js',
  output: {
    path: path.resolve(__dirname, 'dist'),
    clean: true,
    filename: 'webpack-numbers.js',
    library: {
      // library 向外暴露的对象名
      name: 'webpackNumbers',
      // 兼容不同的环境 CommonJS、AMD、Node.js 等
      type: 'umd',
    },
  },
}
  • 将lodash等第三方包外部化,由用户安装(推荐)
const path = require('path')

module.exports = {
  mode: 'development',
  entry: './src/index.js',
  output: {
    path: path.resolve(__dirname, 'dist'),
    clean: true,
    filename: 'webpack-numbers.js',
    library: {
      // library 向外暴露的对象名
      name: 'webpackNumbers',
      // 兼容不同的环境 CommonJS、AMD、Node.js 等
      type: 'umd',
    },
  },

  // 外部扩展:https://webpack.docschina.org/configuration/externals/#externals
  externals: {
    lodash: {
      commonjs: 'lodash',
      commonjs2: 'lodash',
      amd: 'lodash',
      root: '_',
    },
  },
}

3)配置npm script并打包构建

"build": "webpack --config webpack.config.js"

同时将package.json文件中main设置为打包构建的文件

"main": "dist/webpack-numbers.js",

2、发布流程

1)将npm的registry设置为官方的仓库(我们需要将包发布到官方仓库)

  • 不能发布到taobao,taobao镜像是只读镜像,会发布失败
  • 若要发布的私服,需要将仓库地址设置为私服地址
npm config get registry

// 发布library需要使用官方仓库
npm config set registry https://registry.npmjs.org
npm config set registry https://registry.npm.taobao.org

2)在终端中登录npm

  • npm login输入用户名、密码和邮箱登录npm

3)发布library到npm

  • 使用命令:npm publish
npm logout //登出

// 如果不知道当前登录的账号可以用who命令查看身份:
npm who am i

// 发布的包在72小时内是可以删除的
npm unpublish  <pkg>[@<version>]
npm unpublish [email protected]

3、更新包

  • 1、修改完包的代码后,还需要更新下package.json中的version(不能和之前的版本相同)
  • 2、已经登录过了,只需使用发布命令npm publish更新包

4、发布注意问题

  • 1、必须将registry设置为官方仓库,否则发布失败
  • 2、每次修改后重新发布,需要修改package.json中的版本号

5、测试

  • CommonJS:在test文件夹下创建test.js,可以使用node去运行代码
// test.js
const webpackNumbers = require('../dist/webpack-numbers')

console.log(webpackNumbers.numToWord(3));
  • script 标签测试:在test文件夹下创建index.html
<body>
  <script src="../dist/webpack-numbers.js"></script>
  <script>
    console.log(webpackNumbers);
  </script>
</body>

5、webpack支持es模块引入

版本与发布记录

01-custom-library-npm 共发布 3 个版本,首次发布于 2022/02/28;过去 12 个月发布了 0 个版本。

版本发布日期距今
1.0.2latest2022/02/284 年前
1.0.12022/02/284 年前
1.0.02022/02/284 年前

关于 01-custom-library-npm 的常见问题

01-custom-library-npm 是什么?

npm init -y npm i webpack webpack-cli lodash -D 2)配置webpack 将项目中使用lodash也打包进项目中,增大了项目的体积(不推荐) // webpack.config.js const path = require('path')

如何安装 01-custom-library-npm?

在项目目录运行 npm install 01-custom-library-npm,或使用 pnpm add / yarn add / bun add。

01-custom-library-npm 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/01-custom-library-npm 是否存在。

01-custom-library-npm 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

01-custom-library-npm 可以商用吗?

01-custom-library-npm 使用 ISC 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

01-custom-library-npm 还在维护吗?

最新版本 1.0.2 发布于 2022/02/28(4 年前);至今共发布 3 个版本,其中过去 12 个月发布了 0 个;首次发布于 2022/02/28。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。