Published on

第四周:You may not need a bundler for your NPM library

Authors

技术

You may not need a bundler for your NPM library 很多时候使用 tsc 已经可以满足打包的大部分场景没有必有用其他的打包器

react-element-component

const App = () => {
  return <p>Hello React</p>
}

console.log(App())
// {
//   $$typeof: Symbol(react.element),
//   "type": "p",
//   "key": null,
//   "ref": null,
//   "props": {
//     "children": "Hello React"
//   },
//   "_owner": null,
//   "_store": {}
// }

console.log(<App />)
// {
//   $$typeof: Symbol(react.element),
//   "key": null,
//   "ref": null,
//   "props": {},
//   "type": () => {…},
//   "_owner": null,
//   "_store": {}
// }

Each instance allocates its own implementation details without leaking it to other components

const Text = ({ children }) => {
  console.log('I am calling as an instance of Text')

  return <p>{children}</p>
}

console.log('I am a component', Text)

const App = () => {
  console.log('I am calling as an instance of App')

  const paragraphOne = <p>You rock, React!</p>
  const paragraphTwo = <Text>Bye!</Text>

  console.log('I am an element:', paragraphOne)
  console.log('I am an element too:', paragraphTwo)

  return (
    <div>
      <p>Hello React</p>
      {paragraphOne}
      {paragraphTwo}
    </div>
  )
}

console.log('I am a component', App)
console.log('I am an element', <App />)
console.log('I am an element', <p>too</p>)

工具

qnm
快速查找一个 npm 包下安装的包

plasmo
浏览器扩展框架

i 微信读书 微信读书增强体验谷歌插件

生活

凌晨 1 点一只大虫子在房间里飞撞窗户声音很大,想抓虫子爬到了电脑桌上,下来想跳到床上踩了空,整个人左半身坠撞在了硬板床上,非常痛。

一句话

对于那些没有想象力的人来说,保持常态就是他们的理想。 —— 荣格

2021 年只有两种人在写博客,一种是试图建立受众并从中获利的人,另一种是只想写出想法、而没有任何目标的人。
这两种人的行为都非常好。选择做你喜欢的事,坚持下去,它们最终都可以对他人产生价值。
——《我从博客中学到的东西》