愚蠢的问题或许......我正在使用Webpack构建应用程序(在Ubuntu上),并且我试图要求另一个的JS文件。我的应用程序看起来像这样:
myapp/
src/
vendor/
facebook.js
components/
layout/
header/
FacebookButtonComponent.js
我的Webpack配置中包含以下内容:
const path = require('path');
const srcPath = path.join(__dirname, '/src');
resolve: {
extensions: [
'',
'.js',
'.jsx'
],
alias: {
components: `${ srcPath }/components`,
vendor: `${ srcPath }/vendor`
}
}
然后在FacebookComponent.js
我需要facebook.js
:
require('vendor/facebook.js');
但是我收到以下错误:
> ./src/components/layout/header/FacebookButtonComponent.js中的错误 找不到模块:错误:无法解析' file'或者'目录' /myapp/src/vendor/facebook.js / myapp / src / components / layout / header
也许我以错误的方式解决这个问题,但似乎正在建立正确的道路。 如果这不正确,我应该如何格式化我的路径?
我还试过./
,它给出了:
> ./src/components/layout/header/FacebookButtonComponent.js中的错误 找不到模块:错误:无法解析' file'或者'目录' myapp / src / components / layout / header中的./vendor/facebook.js
和../
建立相对路径,似乎没有效果:
> ./src/components/layout/header/FacebookButtonComponent.js中的错误 找不到模块:错误:无法解析' file'或者'目录' ../vendor/facebook.js在myapp / src / components / layout / header 中
This question似乎有些相关,但似乎没有任何建议可行(例如设置root
。)
答案 0 :(得分:1)
您可以定义resolve.modulesDirectories而不是alias
:
resolve: {
extensions: [
'',
'.js',
'.jsx'
],
modulesDirectories: [
"node_modules",
"src"
]
}
并且现在需要文件:
require('vendor/facebook.js');
答案 1 :(得分:0)
在您的文件树中
FacebookComponent.js
你的错误说
实按钮强> Component.js
答案 2 :(得分:0)
只需阅读错误,我认为require('../../../vendor/facebook.js')
应该有效。
require('vendor/facebook.js');
> ./src/components/layout/header/FacebookButtonComponent.js中的错误找不到模块:错误:无法解析'文件'或者'目录' /myapp/src/vendor/facebook.js / myapp / src / components / layout / header也许我正在进行
=>试图解决/myapp/src/components/layout/header/myapp/src/vendor/facebook.js
require('./vendor/facebook.js');
> ./src/components/layout/header/FacebookButtonComponent.js中的错误找不到模块:错误:无法解析'文件'或者'目录' myapp / src / components / layout / header中的./vendor/facebook.js
=>试图解决/myapp/src/components/layout/header/vendor/facebook.js
require('../vendor/facebook.js');
> ./src/components/layout/header/FacebookButtonComponent.js中的错误找不到模块:错误:无法解析'文件'或者'目录' ../vendor/facebook.js在myapp / src / components / layout / header 中
=>试图解决myapp / src / components / layout / vendor / facebbok.js