【发布时间】:2018-02-09 05:16:21
【问题描述】:
OP 编辑:如果其他人遇到此问题:该应用程序是使用 create-react-app 创建的,这将导入限制在 src 文件夹内。但是,如果您 upgrade react-scripts to v1.0.11 它确实可以让您访问 package.json。
我正在尝试从我的应用程序中的 package.json 获取版本号。
我已经尝试过these suggestions,但它们都没有工作,因为我无法从 src 文件夹外部访问 package.json(可能是由于 React,我是新手)。将 package.json 移动到 src 意味着我无法从我的根文件夹运行 npm install、npm version minor 和 npm run build。我试过使用process.env.npm_package_version,但这会导致未定义。
我正在使用 Jenkins,我还没有设置它来推送提交,但我唯一的想法是从 GitLab 中的标签中获取版本,但我不知道该怎么做,它会给回购添加不必要的依赖,所以我真的很想找到一个替代方案。
编辑: 我的文件结构是这样的:
--> RootAppFolder
|--> build
|--> node_modules
|--> public
|--> src
|--> Components
|--> Root.js
|
|--> package.json
所以要从 Root.js 访问 package.json,我必须执行 import packageJson from './../../package.json',然后我收到以下错误:
./src/components/Root.js
未找到模块:您尝试导入 ./../../package.json 不属于项目 src/ 目录。不支持 src/ 之外的相对导入。你可以 要么将它移到 src/ 中,要么从项目的 node_modules/.
【问题讨论】:
-
你也试过es6版本吗?
-
“我无法从 src 文件夹外部访问 package.json”——你能解释一下吗?如果
package.json可以访问,版本号就可以很方便的找回来了。 -
@kenfire 你是什么意思?我对 ES6 不是很熟悉。
-
@shaochuancs 我已经编辑解释。将 package.json 移动到 src 文件夹可以获取版本,但是我无法运行任何 npm 命令来实际构建和运行应用程序。
-
@shaochuancs 是的,原来该应用程序是使用 react-create-app 创建的,它通过 webpack 设置了限制。
标签: node.js reactjs npm react-redux create-react-app