Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Webpack 无配置项目中的绝对ES6导入路径?_Webpack_Ecmascript 6_Babeljs_Create React App - Fatal编程技术网

Webpack 无配置项目中的绝对ES6导入路径?

Webpack 无配置项目中的绝对ES6导入路径?,webpack,ecmascript-6,babeljs,create-react-app,Webpack,Ecmascript 6,Babeljs,Create React App,我想使用像这样的绝对导入 import Button from 'components/iu/Button'; 而不是 import Button from '../../../iu/Button'; 应用程序已使用create react app创建。该应用程序当前没有webpack.config.js或.babelrc。我不确定我能在多大程度上创建这些文件和添加配置,以及CreateReact应用程序管道在多大程度上处理这些看不见的问题 如何将绝对导入添加到项目?在根目录(其中是src文

我想使用像这样的绝对导入

import Button from 'components/iu/Button';
而不是

import Button from '../../../iu/Button';
应用程序已使用create react app创建。该应用程序当前没有
webpack.config.js
.babelrc
。我不确定我能在多大程度上创建这些文件和添加配置,以及CreateReact应用程序管道在多大程度上处理这些看不见的问题


如何将绝对导入添加到项目?

在根目录(其中是
src
文件夹)中创建名为
.env
的文件

将此行放入
.env
文件中

节点路径=src

现在,您可以从“components/iu/Button”使用绝对导入,如
导入按钮


在根目录(其中是
src
文件夹)中的react create app 1.x

创建名为
.env
的文件上测试

将此行放入
.env
文件中

节点路径=src

现在,您可以从“components/iu/Button”使用绝对导入,如
导入按钮


react create app 1.x上测试

@JaLe是正确的,正如他所说,这似乎只适用于create react app

此外,还应将以下文件添加到项目中,以便IDE可以为您提供正确的模块路径自动完成:

jsconfig.json

// Set up compilerOptions for VSCode, including how to resolve import statements (needed in accordance with the setup done in ".env")
{
  "compilerOptions": {
    "module": "es6",
    "baseUrl": "./"
  }
}

@JaLe是对的,正如他所说,这似乎只适用于CreateReact应用程序

此外,还应将以下文件添加到项目中,以便IDE可以为您提供正确的模块路径自动完成:

jsconfig.json

// Set up compilerOptions for VSCode, including how to resolve import statements (needed in accordance with the setup done in ".env")
{
  "compilerOptions": {
    "module": "es6",
    "baseUrl": "./"
  }
}

弹出您的CRA,然后您将有一个要更改的网页包配置文件。@PlayMa256:我可以不弹出就进行吗?不,您不能这样做。谢谢。我会考虑使用绝对路径喷射通常被认为是一个错误。如果
组件
确实与一个特定位置无关,那么将其实际作为自己的
节点模块
可能最有意义,在这种情况下,您将自动获得此行为。弹出您的CRA,然后您将有一个网页配置文件要更改。@PlayMa256:我可以不弹出就进行吗?不,您不能这样做。谢谢。我会考虑使用绝对路径喷射通常被认为是一个错误。如果
组件
确实与某个特定位置无关,那么将其作为自己的
节点模块
可能最有意义,在这种情况下,您将自动获得此行为。