如何在es6 whiout Webpack中导入npm模块?

罗德里奇鲁

我如何导入npm模块(例如jquery),但没有webpack?

import * as $ from '../node_modules/jquery/dist/jquery.js';

它给我$没有定义

问题已更新

这个HTML:

<html>

<body>
  <p>hola</p>
  <script src="js/test.js" type="module"></script>
</body>

</html>

和这个js:

import * as $ from '../node_modules/jquery/dist/jquery.js';
console.log($());

给我控制台

TypeError:$不是函数

,但是如果我在出现此消息后在控制台中写:

console.log($()); 它按预期工作

$(){}:对象{jQuery:“ 3.4.1”,构造函数:jQuery(),长度:0,…}

我没有使用任何捆绑软件,在浏览器中使用

TJ人群

除非jquery.js您要导入文件包含其中export,否则您将无法使用import它来导入内容。(您可以使用import它来加载它,尽管可能不是一个好主意,请参见下文。)本机浏览器支持仅处理从以模块形式编写的内容中导入。

import * as $ from '../node_modules/jquery/dist/jquery.js';
console.log($());

给我控制台

TypeError:$不是函数

这样做的原因是,当您* as $在中使用import,您正在为模块导入模块名称空间对象模块名称空间对象永远不可调用,它是一个具有用于模块导出的属性的对象。您可以使用* as x语法来导入任何脚本,即使没有被编写为模块的脚本也因此没有export任何位置,但是您得到的只是一个空对象,因为未被编写为模块的脚本没有任何对象。出口。

但是如果在出现此消息后我在控制台中编写:

console.log($());

它按预期工作

这是因为jQuery$使用windowglobal创建了一个global。您无法$在模块中使用该全局变量的唯一原因是,您已将$用作模块命名空间对象的标识符,从而对其进行了阴影处理

这可能会起作用:

import '../node_modules/jquery/dist/jquery.js';

...因为这将加载并运行jQuery脚本,从而创建一个全局脚本。由于不会使用名称声明模块本地标识符$,如果$在模块中使用它,它将使用jQuery创建全局 标识符$

但是我import不习惯使用加载非设计为模块的脚本。取而代之的是,我想我只是使用script标记来包含jQuery ,然后使用global分别使您的模块成为可能$

<script src="node_modules/jquery/dist/jquery.js"></script>
<script src="js/test.js" type="module"></script>

(或者找到一个模块包装的jQuery版本;我不特别知道它,但是它可能存在。)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

ES6无法在Webpack中导入JSX模块

来自分类Dev

如何使用webpack在npm软件包子文件夹中导入模块?

来自分类Dev

如何从没有npm / webpack的HTML文件中导入React模块

来自分类Dev

如何在ES6模块中导入部分对象

来自分类Dev

WebPacker - 通过 ES6 导入与 webpack.ProvidePlugin() 加载 NPM 模块

来自分类Dev

在深层目录中导入ES6模块

来自分类Dev

在ES6模块中导入同名功能的最佳方法

来自分类Dev

无法在React组件中导入ES6模块

来自分类Dev

如何在ES6中导入“旧的” ES5代码

来自分类Dev

如何在es6中导入本身需要在导入之前调用/初始化其功能/类的模块

来自分类Dev

如何在连字符中使用ES6导入

来自分类Dev

如何在ES6中快速导入对象?

来自分类Dev

ES6 | 如何在此处导出+导入对象?

来自分类Dev

如何在Safari上提供ES6模块?

来自分类Dev

如何在Angular 2 eg中导入非核心npm模块(以使用加密库)?

来自分类Dev

如何在Webpack构建的应用程序中导入不在npm注册表上的库?

来自分类Dev

如何在TypeScript中使用ES6模块语法导入angular.IInjectorService

来自分类Dev

如何在ecmascript-6中导入模块?

来自分类Dev

Webpack通过npm将代码拆分成单独的模块,如何编译es6?

来自分类Dev

如何在Python中导入liblas模块?

来自分类Dev

如何在Python中导入liblas模块?

来自分类Dev

如何在IPython集群中导入模块

来自分类Dev

如何在测试中导入测试模块?

来自分类Dev

如何在反应中导入npm包?

来自分类Dev

如何测试使用jsdom导入jQuery的ES6模块

来自分类Dev

如何导入香草JS ES6模块打字稿?

来自分类Dev

如何让 webpack treeshake 我的 ES6 模块?

来自分类Dev

ES6模块-如果未在React组件中导入的常量未定义

来自分类Dev

如何通过Webpack和6to5与es6模块一起使用npm软件包?

Related 相关文章

  1. 1

    ES6无法在Webpack中导入JSX模块

  2. 2

    如何使用webpack在npm软件包子文件夹中导入模块?

  3. 3

    如何从没有npm / webpack的HTML文件中导入React模块

  4. 4

    如何在ES6模块中导入部分对象

  5. 5

    WebPacker - 通过 ES6 导入与 webpack.ProvidePlugin() 加载 NPM 模块

  6. 6

    在深层目录中导入ES6模块

  7. 7

    在ES6模块中导入同名功能的最佳方法

  8. 8

    无法在React组件中导入ES6模块

  9. 9

    如何在ES6中导入“旧的” ES5代码

  10. 10

    如何在es6中导入本身需要在导入之前调用/初始化其功能/类的模块

  11. 11

    如何在连字符中使用ES6导入

  12. 12

    如何在ES6中快速导入对象?

  13. 13

    ES6 | 如何在此处导出+导入对象?

  14. 14

    如何在Safari上提供ES6模块?

  15. 15

    如何在Angular 2 eg中导入非核心npm模块(以使用加密库)?

  16. 16

    如何在Webpack构建的应用程序中导入不在npm注册表上的库?

  17. 17

    如何在TypeScript中使用ES6模块语法导入angular.IInjectorService

  18. 18

    如何在ecmascript-6中导入模块?

  19. 19

    Webpack通过npm将代码拆分成单独的模块,如何编译es6?

  20. 20

    如何在Python中导入liblas模块?

  21. 21

    如何在Python中导入liblas模块?

  22. 22

    如何在IPython集群中导入模块

  23. 23

    如何在测试中导入测试模块?

  24. 24

    如何在反应中导入npm包?

  25. 25

    如何测试使用jsdom导入jQuery的ES6模块

  26. 26

    如何导入香草JS ES6模块打字稿?

  27. 27

    如何让 webpack treeshake 我的 ES6 模块?

  28. 28

    ES6模块-如果未在React组件中导入的常量未定义

  29. 29

    如何通过Webpack和6to5与es6模块一起使用npm软件包?

热门标签

归档