我想知道 node_modules 文件夹到底是什么以及用于什么。我知道当我们使用 npm 下载任何库时,该库会转到 node_modules,但我知道当我们要将其上传到 github 时,我们必须忽略 node_modules 文件夹,因为它占用大量空间。通过 package.json 我们可以使用 npm i 下载所有依赖项,我的问题是...假设我想将我的应用程序/网站部署到某个服务器/主机,我是否也必须将 node_modules 文件夹上传到服务器?另一件事,通常我从网站下载我的 jquery 和 bootstrap 并复制到我的项目内的 css/js 文件夹中,但是这次我尝试使用 npm 并且一切都转到 node_modules 并且我使用的是cordova,当我执行命令cordova时build 既不生成我的 jquery 也不生成我的引导程序。所以这就是我的问题,如果我想主持我的项目,我真的必须上传 node_modules 吗?当它是cordova或ionic时,我还必须将node_modules复制到www文件夹吗?如果是,那么使用 npm 下载库有什么意义?这是真的吗?哪一个更好?去网站下载文件并粘贴到 www 或通过 npm 下载?
我添加@storybook/preset-create-react-app到我的插件中,因为我希望故事书能够与 React/CRA 一起使用。基本上,我尝试以与 CRA 相同的方式导入 SVG。
import SomeSvgStaticUrl, { ReactComponent as SomeSvgReactComponent } from '../assets/icons/some-icon.svg';
Run Code Online (Sandbox Code Playgroud)
SomeSvgStaticUrl- 默认情况下工作正常(返回字符串静态 URL,与 一起工作正常<img src={SomeSvgStaticUrl} />,但不是我想要的)
SomeSvgReactComponent-undefined默认情况下
因此,我决定更新 webpack 配置以添加 SVG 加载器,
import SomeSvgStaticUrl, { ReactComponent as SomeSvgReactComponent } from '../assets/icons/some-icon.svg';
Run Code Online (Sandbox Code Playgroud)
就像故事书的魅力一样,但默认导入(SomeSvgStaticUrl在本例中),它返回 ReactComponent 而不是静态 URL。并且SomeSvgReactComponent是undefined。没问题,但是当主机应用程序使用具有默认 React/CRA 配置的包时,它不起作用。主机应用程序获取以下内容,
SomeSvgStaticUrl- 静态网址
SomeSvgReactComponent- 反应组件
如果我从包中删除 SVG 加载器,它在主机应用程序上可以正常工作,但在故事书上则不行。当我保留 SVG 加载器时,它可以与故事书一起正常工作,但不能与主机应用程序一起工作。
我真的不想强制所有主机应用程序通过其 webpack 配置使用相同的 SVG 加载器。有什么帮助可以帮助您做什么或者让故事书 SVG 加载器以与 React/CRA 加载器相同的方式工作的最佳方法是什么?
套餐详情
webpackFinal: async config …Run Code Online (Sandbox Code Playgroud)