有没有办法有条件地更改package.json中的主条目文件?

时间:2019-04-30 14:45:00

标签: javascript node.js reactjs ecmascript-6

我目前正在两个不同的项目中开发两个应用程序:一个用作设计系统的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切换到构建文件夹,否则我的问题就会出现。

1 个答案:

答案 0 :(得分:1)

package.json中的“ main”条目应指向构建文件夹:

  

主要字段是模块ID,是您的主要入口点   程序。也就是说,如果您的软件包名为foo,并且有用户安装   它,然后确实require(“ foo”),然后主模块的导出   对象将被返回。

     

这应该是相对于包根目录的模块ID   文件夹。

     

对于大多数模块,拥有主脚本和   通常不会太多。

参考:https://docs.npmjs.com/files/package.json#main

程序包的根与您的 dev应用没有关系。开发时应使用npm link,并保持指向构建文件夹的主要指向不变。