我的webpack配置中有以下resolve
选项:
resolve: {
modules: ["./app/static/js/homepage/", "./app/static/js/dashboard/",],
extensions: [".js", ],
alias: {
"bootstrap": "../../bower_components/bootstrap/dist/js/bootstrap",
"lodash": "../../bower_components/lodash/lodash",
// ...
但是我收到了这个错误:
ERROR in ./app/static/js/dashboard/main.js
Module not found: Error: Can't resolve 'underscore' in '/app/app/static/js/dashboard'
@ ./app/static/js/dashboard/main.js 84:0-112:2
这意味着它不会将underscore
视为别名,这在我的项目中的所有define
都会发生。
答案 0 :(得分:1)
您将它们别名为相对路径,然后上升两个目录(In [1]: import numpy as np
In [2]: A = np.array([1+2j, 2+5j, 3-4j, -3+1j])
In [3]: A.view(float)
Out[3]: array([ 1., 2., 2., 5., 3., -4., -3., 1.])
In [4]: np.savetxt("numbers.txt", A.view(float))
In [5]: np.loadtxt("numbers.txt")
Out[5]: array([ 1., 2., 2., 5., 3., -4., -3., 1.])
In [6]: np.loadtxt("numbers.txt").view(complex)
Out[6]: array([ 1.+2.j, 2.+5.j, 3.-4.j, -3.+1.j])
),因此当您在../../
中导入lodash时,它将尝试在
./app/static/js/dashboard/main.js
假设您的./app/static/bower_components/lodash/lodash
位于项目的顶层(如建议的那样),您可以通过上升四个目录来修复别名:
bower_components
请注意,只有在深度为四级的文件中导入时才会有效。用绝对路径替换它们无处不在。
更清晰的解决方案是将alias: {
"bootstrap": "../../../../bower_components/bootstrap/dist/js/bootstrap",
"lodash": "../../../../bower_components/lodash/lodash",
}
添加到您的模块中,因此它会查找每个bower_components
目录,这是将bower集成到webpack的常用方法。有了它,你可以使用bower_component
而不添加任何别名。但是,如果你仍然想要一个别名,你可以按如下方式进行:
import _ from 'lodash/lodash'