找不到webpack模块:错误:无法解析'jquery'

sdM*_*rth 7 jquery handlebars.js webpack

当我运行'webpack'命令时,我收到此错误:

./js/main.js中的错误找不到模块:错误:无法解析'...\js'中的'jquery'@ ./js/main.js 3:0-16 4:0-23

在package.json我有:

"devDependencies": {
   "handlebars": "^4.0.6",
   "handlebars-loader": "^1.4.0",
   "jquery": "^3.2.1",
   "path": "^0.12.7"
},
Run Code Online (Sandbox Code Playgroud)

在webpack.config.js中:

var path = require("path");

module.exports = {
  entry: "./js/main.js",
  output: {
    path: __dirname + "/js",
    filename: "scripts-bundled.js"
  },
  resolve: {
    modules: [
      path.join(__dirname, "js/helpers")
    ]
  },
  module: {
    loaders: [
      {test: /\.hbs$/, loader: "handlebars-loader"}
    ]
  }
};
Run Code Online (Sandbox Code Playgroud)

在文件顶部的main.js中,我有:

import $ from 'jquery';
Run Code Online (Sandbox Code Playgroud)

我也在main.js中使用把手.可能是车把或车把装载机干扰了jquery吗?我之前在没有使用把手的另一个项目中使用了webpack和jquery而没有这个问题,但也许它与它无关.

Ebr*_*him 15

好吧,就我而言,它是关于导入jquery而不是jQuery 的,它是一个 webpack 配置:

externals: {
    // require("jquery") is external and available
    //  on the global var jQuery
    "jquery": "jQuery"
}
Run Code Online (Sandbox Code Playgroud)

看看这个: webpack Can't resolve 'jquery'


Mic*_*ngo 12

把手与它无关.问题是,你变resolve.modules[path.join(__dirname, "js/helpers")].所以webpack只会查找js/helpers任何模块,但是jquery来自npm的其他依赖项都在node_modules.默认值resolve.modules["node_modules"].您还需要添加node_modules以保持常规模块分辨率.

resolve: {
  modules: [
    path.join(__dirname, "js/helpers"),
    "node_modules"
  ]
},
Run Code Online (Sandbox Code Playgroud)


小智 10

使用以下命令解决错误。
npm install --save jquery