Webpack:找不到模块:错误:无法解析<node.js-package>

问题描述 投票:0回答:1

我正在尝试打包我在调试器下测试过的第一个 vscode 扩展。

在 package.json 的脚本列表中,我添加了以下行

"package": "webpack --mode production --devtool hidden-source-map" 

我使用了推荐的

webpack.config.js
文件,并进行了最小的修改(条目:顶部 JS 文件,扩展名:我添加了“.js”)。我没有更改我不理解其作用且教程中未解释的模块部分。

我成功在vscode下调用webpack命令。 所有源均已正确构建。 但随后我收到所有必需的 node.js 模块的错误(我自己的子模块似乎已正确找到)。 错误说:

Module not found: Error: Can't resolve '<the node.js module name>' in '<source directory>'

错误所指向的行内容为:

const <the node.js module name> = require('<the node.js module name>');

很多人都有类似的错误,但不是在相同的上下文中,所以我找不到适合我的情况的解决方案。

javascript node.js webpack vscode-extensions
1个回答
0
投票

最后我找到了如何避免 webpack 的错误。解决方案是我不理解的部分。看来 webpack 不想在包中包含 Node.js 模块,以避免该包与 Node.js 一起使用时与已安装的模块发生冲突。

但它希望被指示不要包括它们。否则它会产生令我烦恼的错误。

避免错误的方法是为所有 Node.js 模块添加以下行以避免包含。下面的示例显示了 vscode、fs 和路径模块的结果:

    config.resolve = { 
        fallback: {
            'vscode' : false,
            'path'   : false,
            'fs'     : false,
        },
    };

请注意,config 是一个变量,您必须使用它来定义模块将导出的内容:

module.exports = config;

并且因为您需要更多导出数据,所以使用对象文字初始化配置可能会更方便:

const config = {
    .
    .
    .
    resolve: {
      fallback: {
        'vscode'  : false,
        'path'    : false,
        'fs'      : false,
      },
    },
};

现在我已经解决了我的问题,我真的不知道如何处理构建的包。目前还不清楚为什么 vscode 文档推荐使用 webpack。但这是另一个问题......我会按照 Mike Lischke 给出的方向进行调查。

© www.soinside.com 2019 - 2024. All rights reserved.