Используя Node v12.2.0, я могу импортировать все стандартные модули, например:
import * as Http from 'http'
import * as Fs from 'fs'
import * as Path from 'path'
import * as Readline from 'readline'
import * as Os from 'os'
По сравнению с тем, что я делал ранее:
const
Http = require('http')
,Fs = require('fs')
,Path = require('path')
,Readline = require('readline')
,Os = require('os')
Любой модуль, который является модулем ECMAScript, может бытьимпортируется без использования расширения .mjs, если у него есть это поле в файле package.json:
"type": "module"
Поэтому убедитесь, что вы поместили такой файл package.json в ту же папку, что и модульвы делаете.
И для импорта модулей, не обновленных с поддержкой модулей ECMAScript, вы можете сделать так:
// Implement the old require function
import { createRequire } from 'module'
const require = createRequire(import.meta.url)
// Now you can require whatever
const
WebSocket = require('ws')
,Mime = require('mime-types')
,Chokidar = require('chokidar')
И, конечно, не забывайте, что это необходимо для фактического запускаскрипт, использующий импорт модуля:
node --experimental-modules my-script-that-use-import.js
И что родительской папке нужен этот файл package.json, чтобы этот скрипт не жаловался на синтаксис импорта:
{
"type": "module"
}
Если модульЕсли вы хотите использовать, он не был обновлен для поддержки импорта с использованием синтаксиса импорта, тогда у вас нет другого выбора, кроме как использовать требование (но с моим решением, приведенным выше, это не проблема).