javascript - 没有 nodejs 的导入模块 - vanillaJS
问题描述
我正在使用我发现的最新最佳实践来更新我对 VanillaJS 的旧知识和低知识。我最近做了一篇关于 NodeJS 的教程,它用 ExpressJs 做 API REST 和一个用 Socket IO 做的。现在我想在去 REACTJS 之前练习一下。所以我开始了一个小项目,我在没有 NodeJs 的情况下做一个 - 只是 JS 到 HTML 视图中 - 使用 Objects。我想使用 Npm 的模块。我想尝试 Fakerjs,但是当我想导入它时,我有一个 403。路径是正确的,没有错误。
所以我想知道在做 VanillaJs 时是否可以在没有 Nodejs 的情况下导入模块?我做错了吗?
项目的结构是:
js/
main.js
class/
node_modules/
index.html
主.js:
'use strict'
//Importation of modules
import faker from '../node_modules/faker'
//Importation of Class Folder
import { Crypto } from "./class/crypto.class.js";
console.log(faker);
faker.locale = 'en_US';
我在控制台中有这个错误: GET http://crypto-market-js.local:8282/node_modules/faker/ net::ERR_ABORTED 403 (Forbidden)
如果我写:从'faker'导入faker(就像node js,但它是一个要求)我有这个:未捕获的TypeError:无法解析模块说明符“faker”。相对引用必须以 "/"、"./" 或 "../" 开头。
如果你能帮我解决这个问题,请:)
解决方案
没有 NodeJS不支持尝试导入,因为它require
是特定于节点的功能。当尝试将模块导入 Vanilla JS 时,我的建议是首先使用html 标签链接到脚本,然后添加另一个脚本require
<script>
import faker from 'faker'
希望能澄清你的问题。
推荐阅读
- python - 我正在使用 Selenium xpath 寻找最近损坏的小代码元素的帮助?
- java - Docker Selenium 独立服务器无法将文件上传到容器中的网格浏览器
- android - 当手机处于睡眠/打盹模式时,Android 警报不会触发
- angular - 使用 ChildView 时如何修复 ExpressionChangedAfterItHasBeenCheckedError?
- nginx - 如何使用 nginx 更改 RabbitMQ 的路径前缀
- php - 如何多次回显一个字母,为每个新打印更改一个以上的变量?
- c# - 如何从 Material Design for XAML 覆盖 ComboBox ToggleButton?
- java - selenium chromeDriver 的端口是什么意思?
- python - 如何仅获取列表中不带括号的第一个数字?
- javascript - 如何一起删除表行和数组索引