关于javascript:如何仅使用ES6从npm包中导入jQuery?

How could I import jQuery from npm package using ES6 only?

我用npm -install jquery安装了jQuery,它在我的项目中使用jquery创建了一个node_modules文件夹。但是当我尝试使用ES6 import导入它时,出现了错误。

我不想使用Webpack或require()并不得不对其进行编译...其他任何东西只是普通的ES6。

我总是在弄错这个错误

Uncaught SyntaxError: The requested module
'./node_modules/jquery/dist/jquery.min.js' does not provide an export
named '$'

Uncaught SyntaxError: The requested module
'./node_modules/jquery/src/jquery.js' does not provide an export named
'$'

项目结构

1
2
3
4
5
6
7
8
9
10
11
.
├── index.html
├── app.js
├── node_modules/
│   ├── jquery/
│   │   ├── dist/
│   │   │   ├── jquery.js
│   │   │   ├── jquery.min.js
│   │   ├── src/
│   │   │   ├── jquery.js
└── package.json

app.js

1
2
3
4
5
import { $ } from './node_modules/jquery/dist/jquery.min.js'; // <-- does not work
import { $ } from './node_modules/jquery/src/jquery.js'; // <-- does not work
window.$ = $;

$('body').css('background-color', 'red')


先尝试npm install jquery,然后再import $ from"jquery"


目前,浏览器仅支持此功能。
在许多编译器(例如TypeScript和Babel)以及捆绑器(例如Webpack)中提供了完整的实现。

自65版以来,Chrome已完全支持ES6模块,但是如果我们尝试使用import / export关键字在JavaScript文件中导入或导出模块,它仍然会引发错误。

因此,要使没有Webpack / Browserify / Babel的ES6模块正常工作,您需要做的是在index.html文件中添加下一个脚本标记:

1
<script type="module" src="ES6-Node.js">