如何将您的组件库视为已经完全/独立于构建变量构建并准备好被 npm 客户端使用的 npm 包?
除非您想将该库用作某种与周围的构建环境自然有很多耦合的内部包,否则采用经典的 npm 方法可能更容易。如果您想发布软件包,这尤其有意义。在您的导入应用程序项目中,您仍然可以使用process.env.MY_VAR
. 对于库部分,我建议提交一个配置对象。
如果process.env.MY_VAR
对包含多个组件的整个库很重要,请从包初始化步骤开始:
import { init } from "my-comp-library"
const config = {
myVar: process.env.MY_VAR
}
const lib = init(config)
const MyComp = lib.myComp()
const App = () => <MyComp />
如果仅与库中的单个组件相关,则可以直接将其作为道具传递:
const App = () => <MyComp myVar={process.env.MY_VAR} />
在应用程序中,您可以例如创建一个MyAppComp
已经包含其配置的包装器组件,以避免MyComp
. 这里的另一个好处是,如果库公共 API 发生更改,您将在应用程序中只有一个位置来更改代码。
MyAppComp.js
在应用项目中:
import { MyComp } from "my-comp-library"
export const MyAppComp = props => <MyComp myVar={process.env.MY_VAR} {...props} />
您的应用程序和组件项目的独立构建管理消除了耦合,这使它们更易于维护。