如何在webpacker rails中使用ProvidePlugin?

use*_*582 8 ruby-on-rails webpack webpacker

我目前正在尝试使用webpack.ProvidePlugin,但似乎没有正确加载它.这是我的environment.js

var webpack = require("webpack");

const { environment } = require("@rails/webpacker");
const vueLoader = require("./loaders/vue");

environment.loaders.append("vue", vueLoader);

environment.plugins.append(
  "Provide", // arbitrary name
  new webpack.ProvidePlugin({
    Vue: "vue",
    _: "lodash"
  })
);

module.exports = environment;
Run Code Online (Sandbox Code Playgroud)

和我的档案 Header.vue

<h1>{{_.capitalize(title)}} </h1>
Run Code Online (Sandbox Code Playgroud)

错误:

vue.runtime.esm.js:587 [Vue warn]: Property or method "_" is not defined on
 the instance but referenced during render. Make sure that this property is 
reactive, either in the data option, or for class-based components, by 
initializing the property. 
Run Code Online (Sandbox Code Playgroud)

Mic*_*ski 0

您可以使用Vue 的vue-lodash插件,它在 Vue 模板中提供 lodash,您的代码将可以运行。

安装它 ( npm i vue-lodash) 并配置 Vue 以使用它:

import Vue from 'vue'
import VueLodash from 'vue-lodash'

Vue.use(VueLodash, options)
Run Code Online (Sandbox Code Playgroud)

您可以在 Vue 模板中使用 lodash,就像在 Header.vue 中所做的那样:)