如何在React Static Boilerplate中创建webpack导入别名
How do I create a webpack import alias in React Static Boilerplate?
我有以下import
:
// cwd: /project/pages/blog/category/red/index.js
import PageHeader from '../../../components/PageHeader';
我希望能够这样写(在我的项目中的任何地方):
// cwd: /project/pages/blog/category/red/index.js
import PageHeader from 'components/PageHeader';
我尝试过使用webpack resolve
选项,但似乎无法使其工作:
config.resolve = {
alias: {
components: [
path.resolve('../components/')
]
}
};
和
config.resolve = {
root: [
path.resolve('../')
]
};
我是不是错过了什么?
我的应用程序架构是从React Static Boilerplate派生而来的,所以我的webpack.config.js看起来像这个
config.resolve = {
alias: {
components: path.resolve('../components/')
}
};
alias
接受键值对,其中值的类型为string
。我不确定它是否适用于数组。
要更具体地回答,最好知道PageHeader
和webpack
配置在哪里:
假设:
PageHeader
在/project/pages/components
中- 并且您的
webpack
配置处于根级别/project
那么你的决心会是这样的:
config.resolve = {
alias: {
components: path.resolve('./pages/components')
}
};
同样,它取决于webpack
配置和components
目录的路径。path.resolve
将相应地改变。
这个问题似乎与React Static Boilerplate有关,更具体地说,当构建静态页面时。
我找到了一个暂时解决问题的方法。我必须为别名准备一个~
,这样它就不会被"处理"为node_module。。
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';
有关此Github问题的更多信息。
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 为effect Composer创建GodRays效果过程
- 如何使用url加载程序在webpack中导入多个图像
- 从javascript创建一个列表
- onkeyup无法动态创建多个文本区域
- 如何在javascript中创建全局变量(使用webpack)
- 如何在React Static Boilerplate中创建webpack导入别名
- webpack-dev-server 不会监视创建的新文件
- 使用webpack创建串联的.d.ts
- Webpack - 在不创建别名的情况下加载模块
- Webpack:如何为“webpack”创建一个加载器,它需要一系列依赖项
- 使用 Webpack 创建库
- 如何同时创建两者'web'和'节点'Webpack捆绑包的版本
- 在webpack中创建多个块时,数组表示法和对象表示法之间的区别是什么
- Webpack:使用另一个依赖而不是它自己的子依赖来创建依赖
- Webpack不创建输出文件(不使用Webpack开发服务器)
- Angular2 cli (Webpack)为不同的模块创建块
- Webpack动态创建一个模块
- Webpack为依赖项创建重复条目
- Webpack:为目录中的每个文件创建一个捆绑包