当前位置:  开发笔记 > 前端 > 正文

webpack找不到节点模块('bootstrap-multiselect')

如何解决《webpack找不到节点模块('bootstrap-multiselect')》经验,为你挑选了1个好方法。

我的webpack配置指定了要构建的许多节点模块vendors.js.所有模块都安装npm在父文件夹中并驻留在父文件夹中node_modules.

文件夹结构:

app/scripts/a.js
node_modules/bootstrap-multiselect
webpack.config.js

来自webpack.config.js的片段:

entry: {
  vendors: ['jquery', 'bootstrap', 'bootstrap-multiselect']
}

这适用于'jquery'和'bootstrap',但不适用于'bootstrap-multiselect':

ERROR in multi vendors
Module not found: Error: Cannot resolve module 'bootstrap-multiselect' 
in /home/user/app

似乎webpack正在查找错误的node_modules文件夹.它看起来似乎是应用程序文件夹的根目录,但那为什么它仍然会找到其他模块?所以我添加了resolve和的每个变体resolveLoader,

resolveLoader: {root: path.join(__dirname, 'node_modules')};
resolve: {root: [path.join __dirname, 'node_modules']};

仍然没有运气......



1> dreyescat..:

不知道为什么,但package.json下载的npm似乎没有正确配置.该main条目指向不存在的文件.这就是你可能得到错误的原因.

的package.json

"main": "dist/bootstrap-multiselect.js"

bootstrap-multiselect.js文件不在dist但是dist/js.作为一种解决方法,您可以:

    使用vendors字段中的完整路径和require:

    vendors : ['jquery', 'bootstrap', 'bootstrap-multiselect/dist/js/bootstrap-multiselect']
    
    require('bootstrap-multiselect/dist/js/bootstrap-multiselect';
    

    或者,将包命名为以下内​​容中的"真实"文件webpack.config.js:

    resolve: {
      alias: {
        'bootstrap-multiselect': 'bootstrap-multiselect/dist/js/bootstrap-multiselect'
      }
    }
    

但是,迟早它应该被修复,因为我检查了github项目,那里的package.json文件看起来是正确的.

推荐阅读
手机用户2502852037
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有