如何从/dist/app.js引用我的package.json

时间:2020-03-27 08:25:04

标签: javascript node.js node-dev

对于我的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)

有人可以帮我吗?

1 个答案:

答案 0 :(得分:3)

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

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

package.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.jsonindex.jsfoo.js读取path.resolve('package.json')的版本