我有这样的项目结构:
- MyApp
`- firstFolder
`- firstFile.js
`- secondFolder
`- thirdFolder
`- thirdFile.js
如何从firstFile.js
导入thirdFile.js
?
import myFunc from '../firstFolder/firstFile';
中thirdFile.js
之类的内容,并不起作用。
答案 0 :(得分:3)
../将返回1个文件夹,这就是我们返回两个文件夹的原因:
import myFunc from ../../firstFolder/firstFile.js;
或者这些将从根目录
开始import myFunc from /firstFolder/firstFile.js
import myFunc from ./firstFolder/firstFile.js
import myFunc from ~/firstFolder/firstFile.js
答案 1 :(得分:2)
使用=>
import myFunc from '../../firstFolder/firstFile';
或
import * as myFunc from '../../firstFolder/firstFile';
答案 2 :(得分:1)
:
你应该使用两个'..'来支持1个文件夹级别
var myFunc = require('../../firstFolder/firstFile');
ES6(ecmascript6):
import myFunc from '../../firstFolder/firstFile';
答案 3 :(得分:1)
如果使用webpack,则可以调整加载程序以搜索相对于基本目录的文件。将您的webpack.config.js
更改为此
resolve: {
modules: [
path.resolve('./'),
path.resolve('./node_modules')
]
},
,或者,如果您的来源都与./src
相关,请使用path.resolve('./src')
。如果您想更具体一点,也可以看看resolve.alias
(请参阅此处的webpack文档:https://webpack.js.org/configuration/resolve/)
顺便说一句:我在我的应用程序中使用next.js,它具有自己的webpack配置,但是如果放置类似的内容,则可以对其进行修改
const path = require('path');
module.exports = ({
webpack: (config, options) => {
config.resolve.modules.push( path.resolve('./') )
return config
},
})
进入您的next.config.js
,以修改默认值。