我目前正在两个不同的项目中开发两个应用程序:一个用作设计系统的React组件库,以及一个使用设计系统中的组件渲染页面的React Webapp。
在我的Web应用程序内部,按如下所示导入组件:
import { Button } from 'designsystem'
在package.json
的{{1}}内,我的designsystem
条目指向main
,在那里我所有的组件都被导出为ES6模块。开发时可以,因为当我在/src/index.js
中更新组件时,它会反映在webapp上,这是所需的行为。
尽管当我尝试构建自己的Web应用程序时,仅当我将designsystem
的{{1}}条目指向dist文件夹时,该文件夹才起作用。dist文件夹包含一个捆绑的文件,其中所有组件均为UMD。这样,除非重新构建所有内容,否则我看不到Webapp内部组件的更改。
我已经尝试有条件地返回main
中的components模块或dist内容,以指向正确的内容。但没有任何效果。
我的问题是:是否可以有条件地更改designsystem
中的/src/index.js
条目?如果没有,还有其他解决方案吗?
编辑:当main
指向源时,我可以使用package.json
对其进行正常处理。当我尝试构建父级时,除非我将main
切换到构建文件夹,否则我的问题就会出现。
答案 0 :(得分:1)
package.json中的“ main”条目应指向构建文件夹:
主要字段是模块ID,是您的主要入口点 程序。也就是说,如果您的软件包名为foo,并且有用户安装 它,然后确实require(“ foo”),然后主模块的导出 对象将被返回。
这应该是相对于包根目录的模块ID 文件夹。
对于大多数模块,拥有主脚本和 通常不会太多。
参考:https://docs.npmjs.com/files/package.json#main
程序包的根与您的 dev应用没有关系。开发时应使用npm link,并保持指向构建文件夹的主要指向不变。