javascript - 如何向 webpacker 添加库以在 Stimulus JS Controller 中使用

标签 javascript ruby-on-rails webpack stimulusjs

我想使用 dayjs库( instead of moment) 在我的 Stimulus js Controller 中,但我不断收到错误消息:

dayjs is not defined

setNextVisit(event) {
  console.log( dayjs().format('YYYY-MM-DD') );
}

enter image description here

我正在使用 Rails 5.2 以及 Webpacker 和 Stimulus。

我通过yarn add dayjs --save添加了dayjs,并将其添加到/package.json:

/package.json

{
  "name": "meh",
  "private": true,
  "dependencies": {
    "@rails/ujs": "^6.0.0-alpha",
    "@rails/webpacker": "3.5",
    "dayjs": "^1.8.2"
    "stimulus": "^1.1.1",
    "turbolinks": "^5.2.0"
  },
  "devDependencies": {
    "webpack-dev-server": "2.11.2"
  }
}

要通过 webpacker gem 连接 webpack 中的 dayjs,我已将其添加到 /app/javascript/packs/application.js:

/app/javascript/packs/application.js

/* eslint no-console:0 */

// @RAILS/UJS
// imported in config/webpack/environment.js
Rails.start();

// TURBOLINKS
import Turbolinks from 'turbolinks';
Turbolinks.start();

// DAYJS
import dayjs from 'dayjs'

// STIMULUS
import { Application } from 'stimulus'
import { definitionsFromContext } from "stimulus/webpack-helpers"


const application = Application.start()
const context = require.context("./controllers", true, /\.js$/)
application.load(definitionsFromContext(context))

最佳答案

您需要在刺激 Controller 中导入 dayjs,而不是在主 application.js 中

你的 Controller 应该看起来像这样:

import { Controller } from "stimulus";
import dayjs from 'dayjs'

export default class extends Controller {    

  SetNextVisit(event) {
    console.log( dayjs().format('YYYY-MM-DD') );
 }

}

这不是 Stimulus 特有的,而是 ES6 JS 的工作原理

关于javascript - 如何向 webpacker 添加库以在 Stimulus JS Controller 中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54509261/

相关文章:

javascript - 为什么 Facebook 点赞按钮的 JS 代码使用奇怪的 URL?

javascript - 如何将函数分配给 Javascript 对象的属性?

javascript - 如何在 v8 中正确恢复 Javascript 上下文?

webpack - 使用 webpack 和 VueJS 在 IE11 上遇到 SCRIPT 1003 错误

javascript - 在 Javascript 中,如何在不指定 rgb 的情况下设置 rgba?

ruby-on-rails - 如何从rails中的相关表中显示当前用户的详细信息

ruby-on-rails - 在 before_action 中访问 application_helper

ruby-on-rails - Ruby on Rails 协会表格

node.js - 我可以用作 webpack 配置的 es-modules 吗?

javascript - 在 webpack.config.js 中使用扩展运算符的语法错误