小编典典

使用 webpack 解析需要路径

all

我仍然对如何使用 webpack 解析模块路径感到困惑。现在我写:

myfile = require('../../mydir/myfile.js')

但我想写

myfile = require('mydir/myfile.js')

我在想resolve.alias{ xyz: "/some/dir" }可能会有所帮助,因为我看到了一个使用as
alias的类似示例,然后我可以require("xyz/file.js")

但是,如果我将别名设置为{ mydir: '/absolute/path/mydir' }require('mydir/myfile.js')
将不起作用。

我感到很愚蠢,因为我已经多次阅读该文档并且我觉得我错过了一些东西。避免使用../../etc 编写所有相关要求的正确方法是什么?


阅读 74

收藏
2022-08-21

共1个答案

小编典典

网页包 >2.0

请参阅wtk 的答案。

为了将来参考,webpack 2 删除了所有内容,但modules作为解析路径的一种方式。这种手段是行不通root的。

https://gist.github.com/sokra/27b24881210b56bbaff7#resolving-options

示例配置开始于:

{
  modules: [path.resolve(__dirname, "app"), "node_modules"]
  // (was split into `root`, `modulesDirectories` and `fallback` in the old options)

网络包 1.0

更直接的方法是使用 resolve.root。

http://webpack.github.io/docs/configuration.html#resolve-
root

解决.root

包含您的模块的目录(绝对路径)。也可能是一个目录数组。此设置应用于将单个目录添加到搜索路径。

在你的情况下:

网络包配置

var path = require('path');

// ...

  resolve: {
    root: path.resolve('./mydir'),
    extensions: ['', '.js']
  }

消费模块

require('myfile')

或者

require('myfile.js')

另见:http ://webpack.github.io/docs/configuration.html#resolve-
modulesdirectories

2022-08-21