【发布时间】:2016-07-21 19:18:33
【问题描述】:
我正在尝试为我的应用程序提供一个命名空间以作为模块工作,并使用此命名空间导入我的组件并限制相对路径的使用。
尽管我在这里遵循了 webpack 文档的别名:http://webpack.github.io/docs/configuration.html#resolve-alias 我无法让它工作。
这就是我的解析对象的样子:
resolve: {
root: path.resolve(__dirname),
alias: {
myApp: './src',
},
extensions: ['', '.js', '.json', '.jsx']
}
path.resolve(__dirname) 解析/Users/Alex/Workspace/MyAppName/ui/
我以这种方式将我的文件导入文件/Users/Alex/Workspace/MyAppName/ui/src/components/Header/index.jsx:
import { myMethod } from 'myApp/utils/myUtils';
我在构建过程中收到以下错误:
ERROR in ./src/components/Header/index.jsx
Module not found: Error: Cannot resolve module 'myApp/utils/myUtils' in /Users/Alex/Workspace/MyAppName/ui/src/components/Header
@ ./src/components/Header/index.jsx 33:19-56
我也尝试了modulesDirectories,但它也不起作用。
你知道出了什么问题吗?
【问题讨论】:
-
而您尝试直接在别名中解析路径,例如:
myApp: path.resolve( __dirname, 'src' ) -
我试过了,还是不行...同样的错误。
-
alias: { myApp: 'src' }怎么样?这就是我的设置。 -
你肯定有
src/utils/myUtils.js或src/utils/myUtils/index.js? -
我试过
src也不起作用。文件名是myUtils.js,但它应该根据extensions属性来解析它。
标签: javascript node.js reactjs ecmascript-6 webpack