Javascript 如何在React静态样板文件中创建网页包导入别名?

Javascript 如何在React静态样板文件中创建网页包导入别名?,javascript,reactjs,ecmascript-6,webpack,Javascript,Reactjs,Ecmascript 6,Webpack,我有以下导入: // cwd: /project/pages/blog/category/red/index.js import PageHeader from '../../../components/PageHeader'; 我希望能够这样写(在我的项目中的任何地方): 我尝试过使用webpackresolve,但似乎无法使其正常工作: config.resolve = { alias: { components: [ path.resolve('../compo

我有以下
导入

// cwd: /project/pages/blog/category/red/index.js

import PageHeader from '../../../components/PageHeader';
我希望能够这样写(在我的项目中的任何地方):

我尝试过使用webpack
resolve
,但似乎无法使其正常工作:

config.resolve = {
  alias: {
    components: [
      path.resolve('../components/')
    ]
  }
};

我错过什么了吗

我的应用程序架构是从中派生出来的,所以我的webpack.config.js看起来像

alias
接受键值对,值的类型为
string
。我不确定它是否适用于数组


alias
接受键值对,值的类型为
string
。我不确定它是否适用于数组。

要更具体地回答,最好知道
PageHeader
和您的
webpack
配置在哪里:

假设:

  • PageHeader
    位于
    /project/pages/components
  • 您的
    网页包
    配置位于根级别
    /project
那么你的决心会是这样的:

config.resolve = {
  alias: {
    components: path.resolve('./pages/components')
  }
};

同样,它取决于
网页包
配置的路径和
组件
目录。
path.resolve
将相应地更改。

要更具体地回答,最好知道
PageHeader
webpack
配置的位置:

假设:

  • PageHeader
    位于
    /project/pages/components
  • 您的
    网页包
    配置位于根级别
    /project
那么你的决心会是这样的:

config.resolve = {
  alias: {
    components: path.resolve('./pages/components')
  }
};

同样,它取决于
网页包
配置的路径和
组件
目录。
path.resolve
将相应地更改。

问题似乎与React静态样板文件有关,更具体地说是在构建静态页面时

我找到了一个暂时解决问题的方法。我必须在别名前面加一个
~
,这样它就不会被“当作”节点模块

config.resolve = {
  alias: {
    "~components": path.resolve(__dirname, '../components'),
    "~decorators": path.resolve(__dirname, '../core/scripts/decorators'),
    "~helpers": path.resolve(__dirname, '../core/scripts/helpers'),
    "~i18n": path.resolve(__dirname, '../core/i18n'),
  }
};
用法:

import fetch from '~helpers/fetch';
import header from '~components/header';

更多信息。

这个问题似乎与React静态样板文件有关,更具体地说是在构建静态页面时

我找到了一个暂时解决问题的方法。我必须在别名前面加一个
~
,这样它就不会被“当作”节点模块

config.resolve = {
  alias: {
    "~components": path.resolve(__dirname, '../components'),
    "~decorators": path.resolve(__dirname, '../core/scripts/decorators'),
    "~helpers": path.resolve(__dirname, '../core/scripts/helpers'),
    "~i18n": path.resolve(__dirname, '../core/i18n'),
  }
};
用法:

import fetch from '~helpers/fetch';
import header from '~components/header';

有关此操作的详细信息。

已尝试按照设置
根目录
,根目录
适用于我的网页setup@ivarni是的,我做了,(并更新了我的答案),但仍然没有解决。啊,你想提供一系列根吗?我两个都试过了,用一个简单的字符串和一个数组。尝试按照设置
root
root
对我的网页有效setup@ivarni是的,我做了,(并更新了我的答案),仍然没有解决。啊,你想提供一个根数组吗?我用一个简单的字符串和一个数组两种方法都试过了。