【问题标题】:How to make an alias to a specific node_module如何为特定的 node_module 创建别名
【发布时间】:2019-09-11 12:02:19
【问题描述】:

我们曾经有一个文件夹,里面放着一堆打字稿模块。现在我们把那个文件夹做成了一个包。

问题是现有代码对该文件夹使用 webpack 别名,现在我希望相同的别名指向特定的 node_modules 文件夹,但这是行不通的。

alias: {
    x: path.resolve(__dirname, "node_modules/y")
    z: path.resolve(__dirname, "node_modules/y/z")
}

这应该有效吗?

编辑:它确实有效。只是打字稿仍在抱怨,还需要将别名添加到 tsconfig 中。

【问题讨论】:

  • 你不需要别名,webpack默认在node_modules文件夹中查找。
  • @monkeythedev 我编辑了示例以显示它的名称不同

标签: javascript webpack vue-cli


【解决方案1】:

这应该可以工作(在 webpack 配置的 resolve 键中的别名):

resolve: {
    alias: {
        x: path.resolve(__dirname, "node_modules/x")
    }
}

也就是说,正如 MonkeyTheDev 所说,将 x 别名为 x 是没有意义的,因为它是默认行为。

【讨论】:

  • 我编辑了示例以显示它不是同名
【解决方案2】:

在您的情况下,您不需要 path.resolve(__dirname, ...) 因为 webpack 会自动在 node_modules 文件夹中查找。

alias: {
    x: "y")
    z: "y/z")
}

使用此代码,Webpack 将在您的 node_modules 文件夹中查找“y”和“y/z”,并将它们别名为“x”和“z”。然后你可以像这样导入:import myModule from "z".

如果这不起作用并且您正在从命令行使用 webpack,则可能是您的 webpack.config 的位置不正确,它应该位于 node_modules 文件夹的同一级别的根目录中。

【讨论】:

    猜你喜欢
    • 2020-09-01
    • 2020-06-24
    • 1970-01-01
    • 2016-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-30
    相关资源
    最近更新 更多