Вот файлы для моего приложения, которое использует babel для компиляции ES6 в main.js
в ES5 в main.bundle.js
Вотмой babel.rc
файл (скрытый):
{
"presets": ["@babel/preset-env"]
}
Вот мой package.json
файл со всеми моими модулями узлов (devDependencies):
{
"name": "es6-tutorial",
"version": "1.0.0",
"description": "ES6 tutorial",
"main": "index.js",
"scripts": {
"babel": "babel js/main.js -o build/main.bundle.js",
"start": "http-server",
"watch": "babel js/main.js -o build/main.bundle.js --watch"
},
"author": "me",
"license": "ISC",
"devDependencies": {
"@babel/preset-env": "^7.2.0",
"babel-cli": "^6.26.0",
"babel-core": "^6.26.3",
"babel-preset-es2015": "^6.24.1",
"http-server": "^0.11.1"
}
}
Прямо сейчас, чтобы начать компиляцию изES6 - ES5 Я перехожу (cd
) в корень этого каталога и настраиваю часы для автоматической компиляции (npm run watch
)
Это работает нормально, за исключением того, что теперь у меня также есть функции в myFunctions.js
, которыеЯ хочу экспортировать и импортировать в main.js
Когда я добавляю этот экспорт / импорт, я замечаю, что скомпилированный файл, main.bundle.js
, добавляет это:
`var _myFunctions = require('myFunctions.js');`
Затем, когда я идучтобы запустить приложение, я получаю сообщение об ошибке в консоли:
`Uncaught ReferenceError: require is not defined
at main.bundle.js:9`
После изучения этого, я думаю, мне нужно добавить какой-нибудь плагин для Babel: https://babeljs.io/docs/en/plugins#modules для обработки экспорта / импорта(это верно?), но я не уверен, какой из них мне следует использовать, и я попробовал несколько, но я не могу заставить их работать после установки npm.
Также я понимаю, что мне НЕ нужно добавлять библиотеку require.js
, верно?