【发布时间】:2021-06-19 15:47:52
【问题描述】:
我知道这听起来就像使用全局变量一样简单,但我不太确定。
这是我的情况:
- 我的 React 应用程序的
/src目录中有多个文件,我们称它们为src/a.js,src/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';
我明白了:
语法错误:不能在模块外使用 import 语句。
方法 #2 - 要求
这会带来麻烦,因为我在我的应用程序中使用导入,而不是模块,因此这样做:
./check.js:
const a = require('./src/a');
const b = require('./src/b');
返回:
错误:找不到模块“./src/a”。
当然,我不能在 a.js/b.js 文件中执行 module.exports,因为它们是我的应用程序的一部分,它们应该使用导出,我尝试过同时使用 export 和 @987654344 @,但效果不佳,看起来很糟糕。
我该如何解决这个问题?我是否应该使用一些文件加载器加载文件,将其解析为 JSON 然后进行比较?或者也许有更简单的方法?
【问题讨论】:
标签: javascript node.js reactjs webpack