当前位置: 首页 > 知识库问答 >
问题:

NodeJS是否支持“导入”样式的模块加载?[副本]

司马狐若
2023-03-14

我正在看一个NodeJS项目,它是从GitHub下载的。它有一个主文件,server。js,它使用ES6模块导入语法,如下所示:

import express from 'express';
import bodyParser from 'body-parser';
import fs from 'fs';
import { search } from './lib/words';

我有NodeJS版本4.6。安装了0,这是非常旧的,我认为它不支持这种语法。相反,它应该是这样的:

var express = require(express)
var bodyParser = require('body-parser')
...

但是,我可以正确地运行这个项目而不会出错,我认为这表明NodeJS支持这种语法,但是NodeJS文档从未指定这种模块语法。我们可以在这里使用它的原因是什么?谢谢你的帮助。

共有1个答案

戚奇略
2023-03-14

当您运行npm start时,package.json中的start脚本将被运行,这意味着start.js将被执行。

开始。js使用babel register将新的ES6语法(包括导入)转换为纯ES5 JavaScript,Node可以动态理解。。babelrc显示正在使用es2015预设,将es2015(ES6)代码转换为正常的ES5 JS。

对您来说很重要的特定变压器是transform-es2015-modors-普通话,它将按预期将导入转换为要求

 类似资料:
  • 问题内容: 我一直在整个互联网上寻找答案,但没有明确的答案。 当前,NodeJS仅使用CommonJS语法加载模块,如果您确实要使用标准的ES2015模块语法,则必须事先对其进行转换,或者在运行时使用外部模块加载器。 目前,我不太愿意使用这两种方法,NodeJS维护人员是否计划支持ES2015模块?我完全没有发现任何提示。 目前,NodeJS 6.x声称支持96%的ES2015功能,但没有任何模块

  • 问题内容: 让被称为FMIF的编码风格。 让被称为IM的编码风格。 让被称为FPIM的编码风格。 为什么IM +FPIM被认为比FMIF更好的编码风格?(有关此问题的启发。) 以下是一些使我更喜欢FMIF而不是IM的条件: 代码的简短性:它使我可以使用较短的函数名称,从而有助于遵循每行80列的约定。 可读性:比更具可读性 。尽管这是一个主观标准,但我认为大多数人都会同意。 易于重定向:如果我使用F

  • 从python语言的API文档中,我找不到任何关于graph x的东西,这是否意味着它还不支持,如果现在不支持,它会支持吗?

  • 问题内容: 只是想知道我们如何在node.js 8中导入模块-我们仍在使用吗? 还是我们仍然需要babel来使用? 我一直在挖掘,但似乎没有答案。如果我们仍然必须使用require,为什么节点还不能实现? 问题答案: UPDATE-2018.11.15↓ 简短答案 我们仍在使用 长答案 ESM加载已部分降落在2017年9月发布的node 上。正因为如此,它已经成为规范的一部分,并且已经作为实验功能

  • 如果我使用ES6中的,那么我的所有Jest测试都会失败,并出现错误: 意外保留字 我将测试对象转换为使用老式IIFE语法,突然我的测试通过了。或者,以更简单的测试用例为例: 同样的错误。显然这里的导入/导出有问题。对我来说,仅仅为了让我的测试框架开心而使用ES5语法重写代码是不现实的。 我有巴别塔笑话。我尝试了GitHub问题的各种建议。这是不可能的。 有解决办法吗?

  • 案例 Basic css 我们绑定 styled-jsx 来生成独立作用域的 CSS. 目标是支持 "shadow CSS",但是 不支持独立模块作用域的 JS. export default () => <div> Hello world <p>scoped!</p> <style jsx>{` p { color: blue;

  • 我不认为任何一种语言在导入其他源文件这样简单的事情上会像python那样让人头疼。所以问题是:我的模块导入是否需要依赖于代码的运行方式? 我有以下目录结构: 我希望从包中的另一个模块导入包中的一个模块。简单? 因此,我在中添加了以下内容: 现在,如果我从目录中运行,就可以正常工作了。另外,如果我返回一个目录并调用就可以了。看起来像是python搜索相对于给定文件的导入模块。 我看了很多资料,包括这

  • Enable loadable module support 可加载模块支持 Enable loadable module support CONFIG_MODULES 打开可加载模块支持,可以通过"make modules_install"把内核模块安装在/lib/modules/中.然后可以使用 modprobe, lsmod, modinfo, insmod, rmmod 等工具进行各种模块