小编Rem*_*emo的帖子

使用 esbuild 加载 bootstrap JS

我正在尝试在我的 esbuild 构建中导入bootstrap JS

// index.js
import 'jquery-import'
import 'bootstrap'

// jquery-import.js
import jquery from 'jquery'
window.jQuery = window.$ = jquery;
Run Code Online (Sandbox Code Playgroud)

构建目标是esm. 问题是运行以下引导代码:

factory(exports, require('jquery'), require('popper.js'));
Run Code Online (Sandbox Code Playgroud)

这不使用我的全局window.jQuery,而是需要它自己的,这意味着我的全局window.$.fn不包含 Bootstrap 扩展。另外,我认为这会使 jQuery 加载两次。

有没有办法在不调整引导源代码的情况下解决这个问题?


更多背景知识:

引导程序源代码以以下语句开头(稍加修改以提高可读性):

(function (global, factory) {
  if (typeof exports === 'object' && typeof module !== 'undefined') {
    // Option 1: The route taken by esbuild
    factory(exports, require('jquery'), require('popper.js'));
  } else if (typeof define === 'function' && define.amd) {
    // Option …
Run Code Online (Sandbox Code Playgroud)

javascript node.js bootstrap-4 es6-modules esbuild

6
推荐指数
1
解决办法
1380
查看次数

使用`assign_attributes`可以通过以下方式立即保存has_many:

据我所知,assign_attributes(不像update_attributes)不应保存记录或就此保存任何记录。

所以当我发现提供_ids一个has_many through:关系。

考虑以下示例:

class GroupUser < ApplicationRecord
  belongs_to :group
  belongs_to :user
end

class Group < ApplicationRecord
  has_many :group_users
  has_many :users, through: :group_users
end

class User < ApplicationRecord
  has_many :group_users
  has_many :groups, through: :group_users

  validates :username, presence: true
end
Run Code Online (Sandbox Code Playgroud)

因此,我们的用户和用户组之间是一对一的关系。

Group.create # Create group with ID 1
Group.create # Create group with ID 2

u = User.create(username: 'Johny')

# The following line inserts two `GroupUser` join objects, despite the fact 
# that …
Run Code Online (Sandbox Code Playgroud)

activerecord ruby-on-rails activemodel ruby-on-rails-5

5
推荐指数
1
解决办法
757
查看次数

获取ruby单元测试中断言错误的"回溯"

在为单元测试创​​建辅助方法时,故障的控制台输出仅指示实际断言发生的行.

# Just an example method.
def test_equal(a, b)
  assert_equal a, b # Error indicates this line
end

test_equal(1, 2) # I'd like to know this line
test_equal(2, 3)
Run Code Online (Sandbox Code Playgroud)

有没有办法显示类似"回溯"的内容或为这些断言错误提供更多上下文?

ruby unit-testing minitest

3
推荐指数
1
解决办法
264
查看次数

如何关闭所有选项卡和窗口,但保持vim打开

标题说:我如何快速关闭所有内容但保持vim打开(再次显示起始视图)?

vim

3
推荐指数
1
解决办法
94
查看次数

为什么此发送模式不匹配?

我写了一个自定义的 rubocop cop,摘录如下:

def_node_matcher :is_foo_bar?, <<-PATTERN
  (send (const nil :Foo) :bar)
PATTERN

def on_send(node)
  puts "Match" if is_foo_bar?(node)
end
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用以下代码:

Foo.bar
Run Code Online (Sandbox Code Playgroud)

有趣的是,node.to_s下面的内容与我的模式完全匹配:

"(send
  (const nil :Foo) :bar)"
Run Code Online (Sandbox Code Playgroud)

但节点不匹配。如果我将模式更改为以下内容,它仍然有效:

(send (...) :bar)
Run Code Online (Sandbox Code Playgroud)

为什么我原来的匹配不起作用?

我的版本:

  • 红宝石2.6.2
  • AST 2.4.0
  • 鲁博科普 0.77.0
  • 解析器2.6.4.1

ruby-parser rubocop

1
推荐指数
1
解决办法
490
查看次数