Taro 配置 alias
为了在 Taro 项目中,配置目录别名,方便引用路径,减少了很多../../
的输入
1 2 3 4 5
| import A from '../../componnets/A'; import Utils from '../../utils'; import packageJson from '../../package.json'; import projectConfig from '../../project.config.json';
|
第一步: 我们找到config/index.js
文件,修改 alias 配置,如果没有这项,直接加入进去就行,代码如下:
1 2 3 4 5 6 7 8 9 10 11
| import * as path from 'path';
module.exports = { alias: { '@/components': path.resolve(__dirname, '..', 'src/components'), '@/utils': path.resolve(__dirname, '..', 'src/utils'), '@/package': path.resolve(__dirname, '..', 'package.json'), '@/project': path.resolve(__dirname, '..', 'project.config.json'), }, };
|
注意 ⚠️:这里的 Taro 文档中没有解释 node 的 path 模块的导入,直接使用了
path.resolve(__dirname, '..', 'src/components')
解释一下的作用类似与cd
,resolve
的作用是将后缀的地址进行处理并拼接,返回最后的路径
__dirname
的意思是当前目录,..
就是返回父级目录
举个例子:
1 2 3 4 5 6 7 8 9 10
| var path = require('path');
path.resolve('/foo/bar', './baz'); path.resolve('/foo/bar', 'baz'); path.resolve('/foo/bar', '/baz'); path.resolve('/foo/bar', '../baz'); path.resolve('home', '/foo/bar', '../baz'); path.resolve('home', './foo/bar', '../baz'); path.resolve('home', 'foo/bar', '../baz'); path.resolve(__dirname, '..', './baz');
|
第二步: 为了让编辑器(VS Code)不报错,并继续使用自动路径补全功能,需要在项目根目录下的jsconfig.json
或者 tsconfig.json
中配置paths
,形式如下:
1 2 3 4 5 6 7 8 9 10 11
| { "compilerOptions": { "baseUrl": ".", "paths": { "@/components/*": ["./src/components/*"], "@/utils/*": ["./src/utils/*"], "@/package": ["./package.json"], "@/project": ["./project.config.json"], } } }
|
最终引入效果:
1 2 3 4 5
| import A from '@/components/A'; import Utils from '@/utils'; import packageJson from '@/package'; import projectConfig from '@/project';
|
感谢阅读,勘误、纠错或其他请联系progerchai@gmail.com,或者点击这里提 issue 给我
欢迎交流 👏,你的每一次指导都可以让我进步