星辰大海

人生万事须自为,跬步江山即寥廓

技术选型

建议根据所开发的npm包功能,选择更加快速且合理的打包方案。如果开发的是一个 tools 这样的工具库,显然更适合用 rollup 打包。如果是开发的是一个业务组件(vue),则更加适合采用 @vue/clilib 模式来构建。

为什么一定要选择打包工具来开发 npm 包?

  • 不一定非要使用构建工具来开发,使用构建工具主要是为了使用它强大的生态系统。比如代码风格检测、本地服务、同时构建多种规范的产物等等,方便我们的开发

为什么是 rollup 而不是 webpack?

  • 随着 rollupwebpack 的版本更新,二者之间的差异性特性越来越小
  • rollup 配置简单,支持同时打包输出多种规范的产物(iife、cjs、umd、esm、amd、system)
  • webpack 功能强大社区丰富,更加适合大型应用;不支持打包输出为es module,而且产物不是很纯净
  • 构建App应用时,webpack比较合适;如果是类库(纯js项目),rollup更加适合。
阅读全文 »

打包工具的选择

如果我们需要构建一个简单的小型应用并让它快速运行起来,可以使用 Parcel;如果需要构建一个类库只需要导入很少第三方库,可以使用 Rollup;如果需要构建一个复杂的应用,需要集成很多第三方库,并且需要代码分拆、HMR等功能,推荐使用 Webpack [3]

所以,在开发工具库时,我们选择 rollup 作为打包工具。

阅读全文 »

添加用户

添加用户是通过终端电脑的npm来操作的,在输入下列命令后,根据要求输入用户名和密码即可。

1
npm adduser --registry https://mydomain.com:port/

授权验证

i18n

发布包

1
npm publish --registry https://mydomain.com:port/

参考

  1. verdaccio 官方配置文档

通过用户名和密码,利用 SSH 登陆远程服务器进行服务器管理时,有如下缺点:

  • 每次输入密码,很麻烦,也不极客
  • 服务器开放账号密码登陆,容易补暴力破解

我们可以通过配置公钥登陆来解决上述问题。

阅读全文 »

子文档是在一个 Schema 中嵌入另一个 Schema,它的形式主要有两种:

  • 子文档是数组

  • 子文档是对象

    注意,子文档是对象的情况只适用于 4.2.0 及以上的版本

阅读全文 »

原使用移动宽带,由于移动宽带无法申请动态公网IP,所以家里拟改用电信宽带。在电信师傅上门安装时,我告诉他我需要光猫桥接,然而师傅一脸为难地告诉我,电信无法改桥接。我一下秒懂了。

阅读全文 »