OP 编辑:如果其他人遇到这种情况:该应用程序是使用create-react-app创建的,它限制导入到 src 文件夹中。但是,如果您将 react-scripts 升级到 v1.0.11,它确实允许您访问 package.json。
我正在尝试从我的应用程序中的 package.json 获取版本号。
我正在使用 Jenkins,但我还没有设置它来推动提交,但我唯一的想法是从 GitLab 中的标签中获取版本,但我不知道如何做到这一点,而且它会给 repo 增加不必要的依赖,所以我真的很想找到一种替代方案。
编辑:我的文件结构如下:
--> RootAppFolder |--> build |--> node_modules |--> public |--> src |--> Components |--> Root.js | |--> package.json
因此,要从 Root.js 访问 package.json 我必须这样做import packageJson from './../../package.json',然后我收到以下错误:
import packageJson from './../../package.json'
./src/components/Root.js 未找到模块:您尝试导入位于项目 src/ 目录之外的 ./../../package.json。不支持 src/ 之外的相对导入。您可以将其移动到 src/ 内,或者从项目的 node_modules/ 为其添加符号链接。
./src/components/Root.js
未找到模块:您尝试导入位于项目 src/ 目录之外的 ./../../package.json。不支持 src/ 之外的相对导入。您可以将其移动到 src/ 内,或者从项目的 node_modules/ 为其添加符号链接。
根据您的编辑,我建议尝试:
import packageJson from '/package.json';
您还可以尝试创建符号链接:
# From the project root. cd src; ln -s ../package.json package.alias.json
列出 src 目录的内容,您将看到符号链接。
ls #=> package.alias.json -> ../package.json
添加.alias有助于减少其他人和您未来自己在查看时产生的“魔力”。此外,它还有助于文本编辑器将它们区分开来。您稍后会感谢我。只需确保更新 JS 代码以从 导入,./package.alias.json而不是./package.json。
.alias
./package.alias.json
./package.json