gpt4 book ai didi

javascript - 如何将我的应用程序中的变量加载到 package.json 中?

转载 作者:行者123 更新时间:2023-12-04 03:36:44 24 4
gpt4 key购买 nike

我知道这听起来和使用全局变量一样简单,但我不太确定。

这是我的案例:

  • 我的 React 应用程序的 /src 目录中有多个文件,我们称它们为 src/a.jssrc/b.js,
  • 这些文件中的每一个都导出一个对象,然后我在我的应用程序中使用该对象:

./src/a.js:

export default {
filename: 'a',
foo: 'bar',
};

./src/b.js:

export default {
filename: 'b',
foo: 'bar',
blah: 'hah',
};

现在我有一个命令来检查这些文件中对象的结构是否匹配(许多开发人员一天多次更改它们),所以当我在终端中执行 npm check 时将为上述输入返回 false,因为 blah 不存在于两个文件中。

我的 package.json 看起来像这样:

"scripts": {
"check": "node check.js runCheck",
/.../
}

我的问题是:我究竟如何加载这些变量以在 package.json 中比较它们?

我有一个名为:

./check.js:

function check(files) {
// checking files there
};

module.exports.check = check;

方法 #1 - 导入

这是一个构建文件,不是应用程序本身的一部分,所以当我尝试这样做时:

./check.js:

import a from './src/a';
import b from './src/b';

我得到:

SyntaxError: Cannot use import statement outside a module.

方法#2 - 要求

这会造成麻烦,因为我在我的应用程序中使用导入,而不是模块,因此:

./check.js:

const a = require('./src/a');
const b = require('./src/b');

返回:

Error: Cannot find module './src/a'.

当然,我不能在 a.js/b.js 文件中执行 module.exports,因为它们是一部分我的应用程序,他们应该使用导出,我试过同时使用 exportmodule.exports,但效果不佳而且看起来很糟糕。

我该如何解决这个问题?我应该使用一些文件加载​​器加载文件,将其解析为 JSON 然后进行比较吗?或者也许有更简单的方法?

最佳答案

您需要使用类似 esm ( https://github.com/standard-things/esm ) 的工具来运行具有模块支持的 Node 。

它应该像这样简单:

npm 安装 esm

然后将您的包脚本更新为:

"check": "node -r esm check.js runCheck",

编辑顺便说一句,这是一个非常清晰且结构合理的问题。

关于javascript - 如何将我的应用程序中的变量加载到 package.json 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66755542/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com