我有以下项目结构:
<块引用>在 'react' 模块 package.json 中,我添加了 'dao' 模块作为本地依赖:
<块引用>"dao": "文件:../dao",
在'npm install'之后,添加一个指向本地磁盘'dao'完整路径的链接:
<块引用>node_modules/dao -> /f/git/projects/dao/
'dao' 模块有以下导出:
<块引用>"./AccountDao": "./src/AccountDao.js",
现在我正在尝试从 react/src/api 下的文件中导入 'dao/AccountDao',并收到此错误:
Module not found: Can't resolve 'dao/AccountDao' in 'F:\git\projects\react\src\api'
问题 1:为什么构建不在 react/node_modules 中寻找 'dao'?
为了解决这个问题,我添加了一个重新布线:
module.exports = function(config, env) {
return Object.assign(config, override(
babelInclude([
path.resolve("src"),
fs.realpathSync("node_modules/dao/src"),
]),
addWebpackResolve({
alias: {
dao: fs.realpathSync("node_modules/dao/src")
},
})
)(config, env));
}
但现在我收到以下错误:
<块引用>未找到模块:您试图导入位于项目 src/ 目录之外的 F:\git\projects\dao\src/AccountDao。不支持 src/ 之外的相对导入。
问题二:为什么会报错?同样,如果 'dao' 包安装在 react/node_modules 中,为什么它不像任何其他依赖包那样处理
为了解决这个问题,我可以将根“projects”文件夹重命名为“node_modules”,然后我想当“相对导入”中包含字符串“node_modules”时(它将是 F:\git\node_modules\ dao\src/AccountDao) - 没有问题。
问题 3:将本地节点项目导入 create-react-app 项目的最佳方式是什么?