Сделать библиотеку javascript доступной для всего проекта с помощью Webpacker - PullRequest
0 голосов
/ 06 марта 2020

Я работаю над переходом со звездочек на веб-упаковщик с одним из моих проектов rails.

Структура звездочек выглядит примерно так:

# app/assets/javascripts/application.js

//= require jquery
//= require rails-ujs
//= require moment
//= require custom_js_one
//= require custom_js_two
//= require custom_js_three

etc...

Я пытаюсь выяснить, как перенести структуру в веб-упаковщик, чтобы получить доступ к momentjs из всех custom_js.

Прямо сейчас, для веб-упаковщика, у меня есть это:

# app/javascript/packs/application.js

require("@rails/ujs").start();

import moment from "moment";
import "custom_js_one";
import "custom_js_two";
import "custom_js_three";

etc...

Но сейчас я получаю ReferenceError, когда я пытаюсь вызвать moment() в любом из custom_js файлов.

Вот мой текущий файл config/webpack/environment.js, если это поможет:

const { environment } = require('@rails/webpacker')
const coffee =  require('./loaders/coffee')

const webpack = require('webpack');
environment.plugins.append('Provide', new webpack.ProvidePlugin({
  $: 'jquery',
  jQuery: 'jquery'
}));

environment.loaders.prepend('coffee', coffee)
module.exports = environment

Есть ли способ сделать moment() доступным из каждого из custom_js файлов без ввода require('moment') в каждый отдельный?

...