Во-первых, весь код доступен в этом репозитории , чтобы легко его попробовать. (и пакет опубликован в npm, поэтому его можно использовать в качестве теста)
Я пытаюсь сделать так, чтобы этот простой NPM пакет ESModule работал в обратном направлении с Nodejs Common JS + babel.
Пакет (1-npm-package
в репозитории Github)
пакет. json
{
"name": "test-es6-module-npm-package",
"version": "0.1.0",
"description": "Text NPM package ESModule",
"main": "src/index.js",
"type": "module",
"author": "ArthyFiciel"
}
источник / индекс. js
export const sayHello = (name) => {
console.log(`[Npm module package]: Hello ${name}`);
};
Ps: этот пакет опубликован для npm и может использоваться с npm i test-es6-module-npm-package
и import { sayHello } from 'test-es6-module-npm-package'
ОШИБКА (4-commonjs-express-with-babel-and-esm
в репозитории Github)
Этот проект представляет собой простой Express сервер, использующий пакет Babel.
. json (Поставьте только ссылку, чтобы избежать больших файлов)
src / index, js
import express from 'express';
import { sayHello } from 'test-es6-module-npm-package'; // <<< THIS CAUSING ERROR
const PORT = process.env.PORT || 7000;
const app = express();
app.listen(PORT, async () => {
sayHello(`I'm server on port ${PORT}`);
});
Но когда я пытаюсь запустить его, я получаю ошибка:
/test-es6-module/4-commonjs-express-with-babel-and-esm/node_modules/test-es6-module-npm-package/src/index.js:1
export const sayHello = (name) => {
^^^^^^
SyntaxError: Unexpected token 'export'
at Module._compile (internal/modules/cjs/loader.js:895:18)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:995:10)
at Module.load (internal/modules/cjs/loader.js:815:32)
at Function.Module._load (internal/modules/cjs/loader.js:727:14)
at Module.require (internal/modules/cjs/loader.js:852:19)
at require (internal/modules/cjs/helpers.js:74:18)
at Object.<anonymous> (/home/arthyficiel/Dev/GrilledCode/StackOverflow/test-es6-module/4-commonjs-express-with-babel-and-esm/dist/index.js:11:32)
at Module._compile (internal/modules/cjs/loader.js:959:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:995:10)
at Module.load (internal/modules/cjs/loader.js:815:32)
Проект GitHub также предоставляет 2 других теста:
2-express
Сервер ESModule express, который подтверждает пакет работает. 3-commonjs-express-with-babel
Точно такие же проекты (4-commonjs-express-with-babel-and-esm
) без каких-либо ссылок nce к моему пакету, работает нормально.
версия узла v12.14.0
NPM версия v6.13.4