有没有办法package.json在nodejs应用程序中设置版本?我想要这样的东西
var port = process.env.PORT || 3000
app.listen port
console.log "Express server listening on port %d in %s mode %s", app.address().port, app.settings.env, app.VERSION
Run Code Online (Sandbox Code Playgroud) 我找不到关于使用新的 ES 模块实现导入 JSON 文件的任何答案,我在 StackOverflow 上找到的所有答案都是针对使用 Babel 转译的代码,我想导入我的package.json文件:
import pkg from '../package.json';
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
(node:7863) ExperimentalWarning: The ESM module loader is experimental.
internal/modules/run_main.js:54
internalBinding('errors').triggerUncaughtException(
^
TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ".json" for /home/user/files/project/package.json imported from /home/user/files/project/version.js
at Loader.resolve [as _resolve] (internal/modules/esm/default_resolve.js:126:13)
at Loader.resolve (internal/modules/esm/loader.js:72:33)
at Loader.getModuleJob (internal/modules/esm/loader.js:156:40)
at ModuleWrap.<anonymous> (internal/modules/esm/module_job.js:42:40)
at link (internal/modules/esm/module_job.js:41:36) {
code: 'ERR_UNKNOWN_FILE_EXTENSION'
}
Run Code Online (Sandbox Code Playgroud)
我正在使用最新的Node.js 13.6.0,我是否只剩下使用fs模块读取文件的选项?
我想导入package.json到test.js,两个文件都在同一目录中。
我尝试过require:
const jsonfile = require("./packages.json");
console.log({ jsonfile });
Run Code Online (Sandbox Code Playgroud)
它抛出错误:
file:///home/.../test.js:1
const jsonfile = require("./packages.json");
^
ReferenceError: require is not defined
at file:///home/.../test.js:1:18
at ModuleJob.run (internal/modules/esm/module_job.js:145:37)
at async Loader.import (internal/modules/esm/loader.js:182:24)
at async Object.loadESM (internal/process/esm_loader.js:68:5)
Run Code Online (Sandbox Code Playgroud)
这个错误意味着,就像它在浏览器中运行一样,其中 no require,我找到了带有类似消息的答案。
我尝试过import:
import * as jsonfile from './packages.json';
console.log({ jsonfile });
Run Code Online (Sandbox Code Playgroud)
internal/process/esm_loader.js:74
internalBinding('errors').triggerUncaughtException(
^
Error [ERR_MODULE_NOT_FOUND]: Cannot find module '/home/.../packages.json' imported from /home/.../test.js
at finalizeResolution (internal/modules/esm/resolve.js:271:11)
at moduleResolve (internal/modules/esm/resolve.js:694:10)
at Loader.defaultResolve [as _resolve] (internal/modules/esm/resolve.js:784:11) …Run Code Online (Sandbox Code Playgroud)