无法使用typescript解析’jquery’

我有一个问题是在我的项目中将typescript与jquery集成。 我使用npm安装了@ types / jquery和jquery,但我不能在我的.ts中使用。 我尝试导入:

import jquery from "jquery"; import * as $ from "jquery"; import jquery = require("jquery"); const jquery = require("jquery"); import jquery = require("@types/jquery"); 

这些导入在编译时显示错误:

 Module not found: Error: Can't resolve 'jquery' 

我的webpack配置:

 module.exports = { entry: './src/App.ts', plugins: [ new CleanWebpackPlugin(['dist']), new HtmlWebpackPlugin({ title: 'DQuiz' }) ], module: { rules: [ { test: /\.tsx?$/, use: 'ts-loader', exclude: /node_modules/ }, { test: /\.hbs$/, loader: "handlebars-loader" } ] }, resolve: { mainFields: ['browserify'], extensions: ['.tsx', '.ts', '.js'] }, output: { filename: 'bundle.js', path: path.resolve(__dirname, 'dist') } }; 

试试吧

 plugins: [ new CleanWebpackPlugin(['dist']), new HtmlWebpackPlugin({ title: 'DQuiz' }), new webpack.ProvidePlugin({ $: 'jquery', jQuery: 'jquery', 'window.jQuery': 'jquery' }) ], 

或者你可以按照这里的结构

我测试了用ubuntu在另一台机器上构建我的项目。 我得到同样的错误:

 Module not found: Error: Can't resolve 'jquery' 

通过一些搜索,我找到了解决方案。 对于Jquery 3.x,您需要使用‘jquery / src / jquery’导入模块。

我使用Tan Duong建议的解决方案提供插件,我觉得这个解决方案对于jquery更优雅,然后再导入,你可以使用:

 const webpack = require('webpack'); module.exports = { plugins: [ new webpack.ProvidePlugin({ $: 'jquery/src/jquery', jquery: 'jquery/src/jquery' }) ] } 

谢谢大家的答案:)