0

对于我的 Web 应用程序,当我尝试将版本标记从 package.json 导入到 app.js (/src/app.js) 时,它是 app.js 的一个级别,本地运行正常。但是当我尝试通过生成 dist 文件夹从开发中运行时,即使 src 和 dist 文件夹处于同一级别并且应该能够访问 package.json,代码也不起作用。

当我部署到开发时,我收到如下错误:

Error: Cannot find module '../package.json'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
    at Function.Module._load (internal/modules/cjs/loader.js:562:25)
    at Module.require (internal/modules/cjs/loader.js:692:17)
    at require (internal/modules/cjs/helpers.js:25:18)

有人可以帮我吗?

4

1 回答 1

3

如果您使用的是 Node.js,似乎是这种情况,请使用节点本机path模块来解析package.json路径。这是一个例子:

src/
  path/
    to/
      subdir/
        foo.js
index.js
package.json

包.json

{
  "version": "1.0"
}

foo.js

const path = require('path');
const packageJson = require(path.resolve('package.json'));

module.exports = {
  "packageVersion": packageJson.version
}

index.js

const path = require('path');
const packageJson = require(path.resolve('package.json'));
const foo = require('./src/path/to/subdir/foo');

console.log(packageJson.version);
console.log(foo.packageVersion);

运行时node index,您将获得以下输出

1.0
1.0

package.json从两者读取版本index.jsfoo.js使用path.resolve('package.json')

于 2020-03-27T10:27:32.047 回答