У меня есть новый проект rails (6.0.0rc1), и я пытаюсь использовать новую систему webpack для загрузки bootstrap.
Для справки, это Mac с запущенным Mojave, без каких-либо известных проблем при выполнении любой другой работы разработчиков.
Я следовал всем соответствующим руководствам и всегда получаю одну и ту же ошибку, и я не могу загрузить ни js, ни таблицы стилей.
yarn add bootstrap jquery popper.js
конфигурация/веб-пакет/среда:
const { environment } = require('@rails/webpacker')
const webpack = require('webpack')
environment.plugins.append('Provide', new webpack.ProvidePlugin({
$: 'jquery',
jQuery: 'jquery',
Poppper: ['popper.js', 'default']
}))
module.exports = environment
приложение/javascript/пакеты/application.js:
require("@rails/ujs").start()
require("turbolinks").start()
require("@rails/activestorage").start()
require("channels")
import "bootstrap"
import "../stylesheets/application"
Ошибка:
TypeError: __webpack_require__(/*! ./harmony-module.js */
"./node_modules/webpack/buildin/harmony-module.js") is not a
function.
(In '__webpack_require__(/*! ./harmony-module.js */
"./node_modules/webpack/buildin/harmony-module.js")(module)',
'__webpack_require__(/*! ./harmony-module.js */
"./node_modules/webpack/buildin/harmony-module.js")' is an instance
of Object)
и да, сервер разработки webpack работает и не жалуется:
ℹ 「wdm」: Compiling...
ℹ 「wdm」: Hash: 1c7e3fa63a51751518ef
Version: webpack 4.32.2
Time: 610ms
Built at: 2019-05-29 2:43:34 p.m.
Asset Size Chunks
Chunk Names
js/application-40d856ea775503923ce0.js 2.05 MiB application
[emitted] application
js/application-40d856ea775503923ce0.js.map 2.02 MiB application
[emitted] application
manifest.json 364 bytes
[emitted]
ℹ 「wdm」: Compiled successfully.
Это связано с https://github.com/rails/webpacker/pull/2031 и не связано с начальной загрузкой в веб-упаковщике.
Удаление двух ссылок на corejs 3 в /babel.config.js решило проблему.
Кажется, в настоящее время есть проблема с веб-упаковщиком Rails напрямую — github.com/rails/webpacker/issues/2109