javascript - Webpack alias for src folder in React app? - Stack Overflow

I would like to use absolute imports to import any file relative to the root src directory. This is my

I would like to use absolute imports to import any file relative to the root src directory. This is my folder structure:

example/
┣ public/
┃ ┣ index.html
┣ src/
┃ ┣ ponents/
┃ ┣ ┣ App.css
┃ ┣ ┣ App.js
┃ ┣ ┗ Todo.js
┃ ┣ api.js
┃ ┣ history.js
┃ ┗ index.js
┣ craco.config.js
┣ jsconfig.json

And here is my config

var path = require("path");
module.exports = {
  resolve: {
    alias: {
      src: path.resolve(__dirname, "src"),
    },
  },
};

import Todo from "src/ponents/Todo"

But I get this error.

Module not found: Can't resolve 'src/ponents/Todo' in 'C:\_MyFiles\Programming\example\src\ponents'


However if I change the config and import to reference a subfolder under src like this it works...

var path = require("path");
module.exports = {
  resolve: {
    alias: {
      ponents: path.resolve(__dirname, "src/ponents"),
    },
  },
};

import Todo from "ponents/Todo"


How can I get the 1st variation working, so the imports reference the src folder instead of its subfolders?

I would like to use absolute imports to import any file relative to the root src directory. This is my folder structure:

example/
┣ public/
┃ ┣ index.html
┣ src/
┃ ┣ ponents/
┃ ┣ ┣ App.css
┃ ┣ ┣ App.js
┃ ┣ ┗ Todo.js
┃ ┣ api.js
┃ ┣ history.js
┃ ┗ index.js
┣ craco.config.js
┣ jsconfig.json

And here is my config

var path = require("path");
module.exports = {
  resolve: {
    alias: {
      src: path.resolve(__dirname, "src"),
    },
  },
};

import Todo from "src/ponents/Todo"

But I get this error.

Module not found: Can't resolve 'src/ponents/Todo' in 'C:\_MyFiles\Programming\example\src\ponents'


However if I change the config and import to reference a subfolder under src like this it works...

var path = require("path");
module.exports = {
  resolve: {
    alias: {
      ponents: path.resolve(__dirname, "src/ponents"),
    },
  },
};

import Todo from "ponents/Todo"


How can I get the 1st variation working, so the imports reference the src folder instead of its subfolders?

Share Improve this question asked May 3, 2020 at 20:28 pyjamaspyjamas 5,4377 gold badges50 silver badges94 bronze badges
Add a ment  | 

1 Answer 1

Reset to default 4

You can use:

resolve: {
  modules: [path.resolve('./src'), path.resolve('./node_modules')],
  extensions: ['', '.js', '.jsx']
}

This will create an alias for all the subdirectories in your src and node_modules folders as well as your src folder itself. So you'll be able to use

Import App from 'ponents/App'

and

Import history from 'history'

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1745509527a4630706.html

相关推荐

  • javascript - Webpack alias for src folder in React app? - Stack Overflow

    I would like to use absolute imports to import any file relative to the root src directory. This is my

    22小时前
    40

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信