Javascript 是否使用绝对路径?而不是从';导入X/什么东西/X';?
我想知道对我来说,为我的项目使用完整路径的最佳方式 例如,如果我正在导入一个组件,我不想从“../components/component”导入组件,而只想从“app/components/component”导入组件代码>Javascript 是否使用绝对路径?而不是从';导入X/什么东西/X';?,javascript,node.js,react-native,Javascript,Node.js,React Native,我想知道对我来说,为我的项目使用完整路径的最佳方式 例如,如果我正在导入一个组件,我不想从“../components/component”导入组件,而只想从“app/components/component”导入组件 有人能帮我吗?你可以在package.json name部分计算出你的应用程序的名称,然后在绝对路径前面使用它,即 import Component from MyApp/components/Component 以下是有关描述问题的更多信息,以获得绝对路径 我正在考虑你的pa
有人能帮我吗?你可以在package.json name部分计算出你的应用程序的名称,然后在绝对路径前面使用它,即
import Component from MyApp/components/Component
以下是有关描述问题的更多信息,以获得绝对路径 我正在考虑你的package.json在根目录中 在内部,您的package.json添加一个新的属性名,其值随您的需要而定,即
"name": "root"
然后导入与该路线相关的所有路线
import Component from root/components/Component
您可以使用babel解析器:。
希望它能帮助你了解每个人的答案 实际上,您可以在其他文件夹中的任何位置创建
package.json
例如,您有:
▾ assets/
▸ home/
▸ png/
favicon.png
icon.png
splash.png
▾ components/
▸ display/
▸ filters/
▸ forms/
▾ images/home/
feedback.js
index.js
▸ crud/
如果您在资产文件夹中创建package.json
,则
{"name": "assets"}
然后,您可以使用assets/png/someimage.png
您还可以使用babel模块解析器,其中包括babel.config.js
(如果您使用的是expo)
将其修改为:
module.exports = function (api) {
api.cache(true);
return {
presets: ["babel-preset-expo"],
plugins: [
[
"module-resolver",
{
root: ["./"],
alias: {
assets: "./assets",
components: "./components",
crud: "./crud",
helpers: "./helpers",
},
},
],
],
};
};
我尝试了很多方法。每个文件夹的
package.json
文件对我来说太多了。另外,我对此也有问题,因为它会开始抱怨我的import-React from'React'
语句
我找到的最佳解决方案是基于babel.config.js
(如果您使用的是Expo)。它使用一个40KB的库,数百万次下载。因此,您必须:
babel.config.js
设置为:module.exports=函数(api){
api.cache(true);
返回{
预设:[“模块:地铁反应本地巴别塔预设”],
插件:[
[
“模块解析器”,
{
根:['.'],
扩展:[
“.ios.ts”,
“.android.ts”,
“.ts”,
“.ios.tsx”,
“.android.tsx”,
“.tsx”,
“.jsx”,
“.js”,
“.json”,
],
别名:{
应用程序:'./src/app',
助手:“./src/helpers”,
...
},
},
],
],
};
};
这应该足够了。但是,如果您像我一样,使用typescript
,您可能还希望通过防止IDE抱怨导入来取悦IDE
tsconfig.json
:{
“编译器选项”:{
...
“baseUrl”:“,
“路径”:{
“app/*”:[”/src/app/*”],
“helpers/*”:[“/src/helpers/*”],
...
},
...
}
}
我有点难以理解配置,因为那篇文章将app
显示为基本文件夹,而我使用的是src
。没什么大不了的,只是把它转化成我的场景。顺便说一句,我的文件结构如下:
project
- android
- ios
- src
- app
- helpers
index.js
project
- android
- ios
- src
- app
- helpers
index.js