尼采般地抒情

公告栏

此网站主题为本人手写主题, 主题待开源···

站点信息

文章总数目: 305
已运行时间: 1063
目录
  1. cnpm
  2. nodemon
  3. gulp
  4. cross-env
  5. sharedb
  6. sharedb-mongo
  7. uuid
  8. nanoid
  9. mkdirp
  10. ws
  11. lodash
  12. clipboard
  13. vueuse
  14. js-base64
  15. moment
  16. html2canvas

尼采般地抒情

尼采般地抒情

公告栏

此网站主题为本人手写主题, 主题待开源···

站点信息

文章总数目: 305
已运行时间: 1063

前言:第三方模块的两种存在形式

  1. 以js文件的形式存在,提供实现项目具体功能的API接口。比如使用jQuery,html中引入CDN超链接即可使用。
  2. 以命令行工具形式存在,辅助项目开发。

比如VUE-CLI工具。

npm是用来管理模块的一个node工具,它会伴随着node的下载而一同下载。


node生态的繁荣多益于很多优秀的三方模块的存在,具体可以查看 NoderSurvey 2021 年度报告 的相关统计与调研。在此记录一下在学习以及实际开发过程中自己所学习到的三方模块,特别地,express三方模块是一个web应用框架,需要学习的点较多,单独拿出来详细学习。

cnpm

因为npm是处于国外的服务器,下载模块有时候可能会较慢,特别是文件比较多的模块。以下是临时使用淘宝镜像下载的命令。

npm --registry https://registry.npm.taobao.org install

如果不想改变npm源,也可以直接使用cnpm(推荐)

// 安装cnpm命令,不会改变npm的源

npm install -g cnpm --registry=https://registry.npm.taobao.org

//使用
cnpm install

//查看源,可以看到设置过的所有的源
npm config get registry

nodemon

cnpm install nodemon –g

作用:在开发过程中,修改了文件,控制台命令行就会根据文件的修改自动运行

使用方法:将运行命令中的 node 换成 nodemon

gulp

基于 node 平台开发的前端构建工具,将机械化操作编写成任务,想要执行机械化操作时执行一个命令行命令任务就能自动执行了,用机器代替手工,提高开发效率。

具体的还有 webpack,后续继续学习。


作用:

  • 项目上线,HTML、CSS、JS 文件压缩合并
  • 语法转换(es6、less ...)
  • 公共文件抽离
  • 修改文件浏览器自动刷新


glup 本身提供的 api 函数很少,官网到目前更新只有下面几个,具体使用方法,使用的时候去查


gulp 生态也有很多插件,根据插件下载相应需要的功能插件

  • gulp-htmlmin :html 文件压缩
  • gulp-csso :压缩 css
  • gulp-babel :JavaScript 语法转化
  • gulp-less: less 语法转化
  • gulp-uglify :压缩混淆 JavaScript
  • gulp-file-include 公共文件包含
  • browsersync 浏览器实时同步

cross-env

windows 不支持 NODE_ENV=development 的设置方式

所以使用该模块来进行跨平台地使用环境变量,兼容各平台使用

sharedb

ShareDB 是一个整合了前后端的 OT 框架,可以很方便地自行搭建服务端和客户端。框架基于 Node.JS 实现。


OT(Operational transformation)是一种支持高级协作软件系统中的一系列协作功能的技术。OT 最初是为了在纯文本文档的协作编辑中实现一致性维护和并发控制而发明的。它的功能已得到扩展,其应用程序已扩展至包括组撤消、锁定、冲突解决、操作通知和压缩、组感知、HTML/XML 和树状结构文档编辑、协作办公生产力工具、应用程序共享和协作计算机- 辅助媒体设计工具。[1] 2009 年,OT 被采用为 Apache Wave 协作功能背后的核心技术和谷歌文档。

sharedb-mongo

uuid

生成唯一的一个字符串

  • v3:基于名字的 用相同的名字,会生成相同的 uuid 出来

npm 的 node-uuid 和 uuid

  • 官网配置教程:https://editor.aomao.com/zh-CN/config/ot
  • 运行方式:将ot-server文件夹复制到项目根目录,将其处于运行状态,然后再运行主项目(localhost 实质上就是指向 127.0.0.1 这个本地 IP 地址。)

nanoid

因为 uuid 生成的字符串太长,不便于作为 url 路径使用,所以使用 nanoid 来作为随机 url 路径

mkdirp

const mkdirp = require('mkdirp')

// return value is a Promise resolving to the first directory created
mkdirp('/tmp/foo/bar/baz').then(made =>
console.log(`made directories, starting with ${made}`))

ws

详见: https://www.wztlink1013.com/blog/wwclae

lodash

npm i @types/lodash

clipboard

vueuse

<template>

  <h3>Mouse: {{ x }} x {{ y }}</h3>
</template>

<script lang="ts">
  import { defineComponent } from 'vue';
  import { useMouse } from '@vueuse/core';

  export default defineComponent({
    name: 'VueUse',
    setup() {
      const { x, y } = useMouse();

      return {
        x,
        y
      };
    }
  });
</script>

js-base64

pnpm install --save js-base64

moment

html2canvas

评论区

Twikoo giscus