React 项目无法在 git 子模块中使用节点模块
Posted
技术标签:
【中文标题】React 项目无法在 git 子模块中使用节点模块【英文标题】:React project fails to use node modules in a git submodule 【发布时间】:2020-05-28 13:46:51 【问题描述】:我有一个 javascript(打字稿)项目,我在反应项目(也是打字稿)中用作 git 子模块。
这一切都很好......直到我在 git 子模块中使用 任何节点模块。例如,我尝试使用节点模块“moment”和“faker”,但我几乎可以肯定它与这些特定的节点模块没有任何关系。
在子模块中导入例如“moment”:
import moment from 'moment';
使用它:
moment().format('DD/MM/YYYY');
运行主反应项目会导致这个错误:
Failed to compile.
./src/project_core/node_modules/moment/moment.js
Line 5:37: 'define' is not defined no-undef
Line 5:50: 'define' is not defined no-undef
删除moment().format('DD/MM/YYYY');
即可解决。
如果我只是直接在子模块中运行一些测试并使用例如“时刻”,它总是有效的。我可以使用节点模块。一旦主项目使用了 git 子模块中的节点模块,看起来就会出现问题。
这就是我的 react 项目的样子。如您所见,子模块 project_core 已添加到主项目的 src 文件夹中。
├── build
│ ├── assets
│ └── static
│ ├── css
│ └── js
├── node_modules
├── public
│ └── assets
└── src
├── project_core
│ ├── node_modules
│ ├── src
│ └── tests
├── ui
├── api
└── utils
我知道...我到处都读到不推荐使用 git 子模块。然而,我只是想尝试使用 git 子模块来从中学习。
【问题讨论】:
【参考方案1】:看起来你在节点模块中有一个节点模块。这可能会使您的捆绑程序感到困惑并产生导入错误。尝试从项目核心子目录中删除 package.json 和 node_modules 并查看导入是否正常工作。如果您想让您的核心目录成为一个库,请考虑将其作为 npm 依赖项而不是子模块。您仍然可以在依赖项中引用 git commit 哈希。
【讨论】:
以上是关于React 项目无法在 git 子模块中使用节点模块的主要内容,如果未能解决你的问题,请参考以下文章