当大环境不好的时候,来做点什么吧

76 阅读4分钟

一个想法的开始

人生总会经历各种起伏, 职业瓶颈期,惨淡的就业环境,焦虑感笼罩着我。 很显然现在进入了一个低谷期,但也不全然是坏消息,通常在这种时候,我们会拥有较多的时间,那么如何使用这些时间就是现在的问题。

image.png

一个想法蹦了出来,写个开源项目 ! 反复思考,百利而无一害。

  • 能磨砺自己的个人技能, 编码能力。
  • 写一些博客相关的内容, 塑造个人IP。
  • 可能还有一些额外的打赏收入,何乐而不为?
  • 付费支持。

基友听完之后,看着我神游天外的样子,忍不住推了推我,“天还没黑呢,还不到睡觉的时候”

“好, 我决定了,我要做一个开源项目,要做一个最棒的开源项目。”

为什么选思维导图?

对于一个从来没有参与过开源的小白来说,这可真的是一个难题呀,不过目标还是很快锁定了,思维导图。

  • 做过相关项目,对于内容设计非常了解,并且有很多未实践的想法希望得到满足
  • 目前 github 上没有较好的思维导图开源项目
  • 基本每一个富文本编辑器都有一个思维导图,无论是 word 类型的(例如 语雀), ppt 类型的(wps), 都存在这方面的需求,反过来说,任意一个内容平台,其实都存在类似需求。那么还是存在一定受众的。
  • Xmind 纯粹的工具也能做到盈利, 俺也想贴贴

最后我想说一句:"我要做最好的思维导图项目 !!!" 求上而得其中,求中而得其下

写怎样的 blog ?

作为工具库, 工具的使用场景限制了受众, 文章的特定内容也会让很多人兴趣缺缺。 对于大多数人来说,没有这个库的需求,那么也就没有看相关文章的必要性。 思考一下,思维导图的实现确实是小众的需求,how to design? 这个问题应该是具备通用性的,关于问题的思考是无关于实际的特例,对所有人都应该会有所帮助和意义的。

文章的主题思路就已经有了大致的思路

创建项目

技术选型

vite 一把梭, 天下苦 webpack 久矣

直接 react + ts + sass 解决问题, 其实本身和渲染框架基本没有任何关系,选用 react + sass 仅仅是比较顺手而已

其他配置

  • css 预处理器, vite 默认
  • scoped css, 这里用的是 vue 的scoped css, 还发现了库的一个小问题
  • lib 包导出配置
  • ts 类型导出配置(没有类型会被骂的呀)

最后还是贴一下相关配置

import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react-swc'
// ts 类型导出
import dts from 'vite-plugin-dts'
import { resolve } from "path";
// scoped-css, css 隔离
import { reactScopedCssPlugin } from 'rollup-plugin-react-scoped-css'
// https://vitejs.dev/config/
export default defineConfig({
  // 配置这个目录是为了后续方便写示例。
  root: 'example',
  plugins: [
    react(),
    dts({ rollupTypes: true }),
    // TODO  reactScopedCssPlugin ts error, 但是会正常工作
    // reactScopedCssPlugin extend rollup.plugin, vitePlugin extend rollup.plugin 
    // reactScopedCssPlugin 应该 extend vitePlugin 才不会类型报错。 手动改了一下本地安装包
    // 后续可能会去提个 issue
    reactScopedCssPlugin({
      styleFileSuffix: ''
    }),
  ],
  // vite 自动生成
  css: {
    preprocessorOptions: {
      less: {
        math: 'parens-division',
      },
      preprocessorOptions: {
        scss: {
        }
      }
    },
  },
  build:{
    outDir: '../dist',
    // 打包输出,暂时只需要 es, 也就是仅仅只能通过 import 使用, 不会吧不会吧,现在还有人不用脚手架呀
    lib: {
      entry: resolve(__dirname, "src/main.tsx"), // 打包的入口文件
      formats: ['es'], //, 'cjs' , 'umd' , 'iife' 
      name: 'mindMap',
      fileName: (format) => `mindMap.${format}.js` // 打包后的文件名
    },
    sourcemap: true, // 输出.map文件
    rollupOptions: {
      // 确保外部化处理那些你不想打包进库的依赖
      external: ['react', 'react-dom'],
      output: {
        // 在 UMD 构建模式下为这些外部化的依赖提供一个全局变量
        globals: {
          react: 'React',
        }
      }
    }
  }
})

github 先创建一个开源项目, 虽然内容非常少,不过也欢迎各路小伙伴 star 给予支持啦。 github 地址

npm 上也先偷偷注册一个库占坑。npm 地址

end

世人皆以成败论英雄,但对于人生而言。我更相信千里之行始于足下,万丈高台始于垒土。 须知滴水穿石,人心亦然。滴穿的洞不会消失,心中的积淀也磨灭不了。

2024冲冲冲

最后的最后,欢迎各路大佬点评,指正。 如果能给个点赞关注, 那就真的太感谢了。 (#^.^#)