嗨,我在.js文件中(使用Webpack的vue.js项目中)具有以下ES6语句:
import my_value from 'path_to_folder1/folder2'; //after `from` keyword, I don't include index.js.
以上语句将在前两个步骤中运行:
步骤1) webpack编译ES6导入语法以要求语法,
例如:
import my_value from 'path_to_folder1/folder2';
将被翻译为:
var my_value = require('path_to_folder1/folder2');
第2步) node.js将在folder2文件夹中搜索并加载(默认情况下)index.js文件。
第3步) 是node.js的一项功能,用于默认搜索并在require语句中从文件夹中加载index.js文件?有任何官方文件吗?
您能告诉我前两个步骤是否正确吗?
然后,我想为第3步提供答案。
这很重要。谢谢
答案 0 :(得分:0)
Node.js将首先检查require的参数是目录还是文件。 如果:
这是一个目录->加载index.js
如果是文件:
.js
并尝试加载。通常,这是您实际上想使用的方法。由于您可能有一些TS文件,然后将它们编译为js ...,编译器会为您解决这个问题现在,不,这不一定是编译导入的方式。这取决于编译器的配置。但是,默认情况下,您正在寻找模块的默认导出。因此,默认情况下,如果您的导入看起来像这样:
import my_value from 'path_to_folder1/folder2';
然后它实际上被解释为
const {default: my_value} = require('path_to_folder1/folder2');
现在,如果您的path_to_folder1/folder2/index.js
指定了export default blabla
,那么您已经准备就绪。如果不是这样,则取决于您的编译器的配置,您可能会遇到错误。如果您的编译器允许默认导入,而您的模块没有任何默认导出,它将导入包含所有导出的对象。