Можно ли использовать импорт ES6 без создания переменной и выполнить в одной строке, как в Common JS? - PullRequest
0 голосов
/ 19 июня 2020

Просто интересно, могу ли я импортировать модули ES6 без создания переменной «заполнитель» и немедленно запустить ее? Например,

вместо импорта ES6, который создает неиспользуемую переменную express:

import express from 'express' 
const app = express();

Обычно JS Я могу обойтись без него:

const app = require("express")();

Это особенно полезно для однократного импорта, например dotenv:

require("dotenv").config();

Вместо

import dotenv from 'dotenv'
dotenv.config();
//or
import {} from 'dotenv/config'
config()

Который, на мой взгляд, синтаксис Common JS намного чище, но похоже, что будущее за импортом ES6.

Спасибо

Ответы [ 2 ]

1 голос
/ 19 июня 2020

В ES6 нет возможности для этого, но есть готовое (стадия 4) предложение для этого:

(await import('dotenv')).config()

Или, если целевой модуль не предоставляет named экспорт:

(await import('dotenv')).default.config()

Однако вы должны отметить, что await может использоваться только внутри функции asyn c (пока это другое предложение не будет реализовано):

(async ()=>{
  (await import('dotenv'))/*.default*/.config()
})()
0 голосов
/ 19 июня 2020

Нет, нет никакого другого способа, кроме как указать заполнители (экспорт или имена экспорта по умолчанию) для импорта модуля ES6.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import

...