概要:在这篇记录中,我们将探讨如何搭建属于自己的脚手架。

本地开发,我们不可能改点东西就发包到npm上,然后重新安装调试,所以我们需要做到本地调试,这里可以使用npm link建立软连接:

建立链接

假设项目名称为project1,和一个公用组件模块common,现需要在项目中使用common,且common是作为npm打包成项目依赖。

首先第一步,使用npm link将common模块创建成本地依赖包。在common目录下输入命令:

1
npm link

然后进入到project1项目目录里,和本地common模块建立链接。命令中‘common’是common模块中package.json的name属性值,而不是目录名称。

1
npm link common

现在在project1中的node_models里就会添加一个common模块的软连接。就说明项目链接模块成功了。
之后修改common里的内容就会实时更新,而不用打包发布再安装依赖。

解除链接

解除项目的依赖直接在项目目录里输入命令:

1
npm unlink common

这样项目里就解除了common模块的软连接,然后可以在输入npm install common安装你发布更新好的common模块包。

要解除本地common包,在common目录中输入命令:

1
npm unlink common

这样本地的common包模块就解除了,其他项目的软连接也失效了。

monorepo

但是这里我们不使用npm link,使用pnpm搭建monorepo。建立文件夹,初始化工程:

1
pnpm init

然后创建pnpm-workspace.yaml文件:

1
2
3
packages: 
- 'packages/*'
- 'examples/*'

上面是一个包含多个项目的配置文件,意思是声明了 packagesexamples 文件夹中子工程是同属一个工作空间的,且目录下的所有文件夹是独立的子工程,这些子工程可以独立操作发布,工作空间中的子工程编译打包的产物也都可以被其它子工程引用。

TODO