繁体   English   中英

导入 vs 需要带斜线

[英]import vs require with slashes

注意:我在节点 14.1 上

所以我目前正在尝试这条线:

import "module-alias/register";

这给了我错误

Error [ERR_MODULE_NOT_FOUND]: Cannot find module

错误路径是:

node_modules/module-alias/register


但是如果我使用 commonjs

require("module-alias/register");

有用。

import 和 require 导致斜线变成错误的区别是什么?

1)每当你使用导入时,

import "module-alias/register";

那时编译器将检查你的模块寄存器的相对路径,在你的情况下,如果你想在 NodeJs 或 javascript 中使用 import 语句,你必须指定他们模块的可用方法(它是 ES6 语法)例如。 你的模块寄存器中有配置文件方法然后你可以写这样的东西,

import { profile } form "module-alias/register";

2) 每当你使用 require 时,

require("module-alias/register");

它与导入功能相同,但有一个区别,您不能指定模块注册的任何特定方法,( IT 是 Common JS Syntax )如上例,您不能指定模块注册的配置文件方法。

3)

  1. 不同之处在于 import 是指定任何模块的特定方法,以便在 require 中进一步使用我们不能那样做。
    1. import 是异步的,require 是同步的。
    2. import是ES6 JS的Syntax,Require是Common JS的Syntax

import 和 require 之间的区别在于 import 是 ES6 语法,这是正确的语法,你需要从 Ex: express-validator 导入一些东西。

import { check, validationResult } from 'express-validator';

导入也可以是异步的。

register是一个 js 文件,并且 import 需要显式扩展,因此import "module-alias/register"; 不管用

import "module-alias/register.js"; 将要。

import 与 ES6 一起使用,require 与 commonjs 一起使用

  1. 对于使用 import 我们应该使用,像这样

import myObject from './File.js';

和出口,

export default myObject;

  1. 使用要求

var myObject = require('./File.js');

和出口,

module.exports = myObject;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM