Javascript 如何使JS错误不';你不能阻止Trix工作吗?

Javascript 如何使JS错误不';你不能阻止Trix工作吗?,javascript,ruby-on-rails,ruby-on-rails-6,trix,actiontext,Javascript,Ruby On Rails,Ruby On Rails 6,Trix,Actiontext,这是 我发现有一个JS文件抛出了一个错误,似乎阻止了Trix的正确执行(或者根本没有) 这就是我的app/javascript/packs/application.js的样子: // This file is automatically compiled by Webpack, along with any other files // present in this directory. You're encouraged to place your actual application lo

这是

我发现有一个JS文件抛出了一个错误,似乎阻止了Trix的正确执行(或者根本没有)

这就是我的
app/javascript/packs/application.js
的样子:

// This file is automatically compiled by Webpack, along with any other files
// present in this directory. You're encouraged to place your actual application logic in
// a relevant structure within app/javascript and only use these pack files to reference
// that code so it'll be compiled.

require("@rails/ujs").start()
require("turbolinks").start()
require("@rails/activestorage").start()
require("channels")
require("local-time").start()

window.Rails = Rails

import '../src/popper.min'
import '../src/jquery.min'
import 'bootstrap'

import '../src/aos'
// import '../src/clipboard.min'
// import '../src/jquery.fancybox.min'
// import '../src/flatpickr.min'
// import '../src/flickity.pkgd.min'
// import '../src/ion.rangeSlider.min'
// import '../src/isotope.pkgd.min'
// import '../src/jarallax.min'
// import '../src/jarallax-video.min'
// import '../src/jarallax-element.min'
// import '../src/jquery.countdown.min'
// import '../src/jquery.smartWizard.min'
// import '../src/plyr.polyfilled.min'
// import '../src/prism'
// import '../src/scrollMonitor'
// import '../src/smooth-scroll.polyfills.min'
// import '../src/svg-injector.umd.production'
// import '../src/svg-injector'
// import '../src/twitterFetcher_min'
// import '../src/typed.min'
// import '../src/theme'

$(document).on("turbolinks:load", () => {
  $('[data-toggle="tooltip"]').tooltip()
  $('[data-toggle="popover"]').popover()
})

import "controllers"

require("trix")
require("@rails/actiontext")
我试着将
require(“trix”)
调用放在这个文件的顶部,但仍然不起作用

考虑到这里的所有JS依赖关系,我是否可以确保执行
trix
actiontext
文件

考虑到这里所有的JS依赖关系,我是否可以确保trix和actiontext文件得到执行

不,所有文件都必须正确运行

当然,您可以将它们包装在try-catch块中,但如果您需要它们为您的应用程序提供功能,那么这可能不起作用

$(文档).on(“turbolinks:load”,()=>{ $('[data toggle=“tooltip”]')。tooltip() $('[data toggle=“popover”]')。popover() })


如果删除上面的代码,还会发生这种情况吗?这并不属于那里(请参见代码顶部网页中的注释)

您可以通过覆盖
窗口来告诉浏览器忽略Javascript错误。onerror
函数。通常不建议这样做,因为这可能会导致意外行为,通常最好让代码在没有错误的情况下运行。错误处理是一件好事

也就是说,这将阻止错误导致脚本停止运行

函数errorIgnorer(){
返回true;
}
window.onError=错误信号器;

他们说,无论如何,某些事件侦听器仍将触发。您可能也可以使用类似的方法来删除这些情况下的错误处理。

您可以尝试将非函数代码放在try-catch中,并将要执行的文件放在
finally{
block

试试这个通用答案:在你的*.js文件中逐行逐行注释1)
我试着把require(“trix”)调用放在这个文件的顶部,但它仍然不起作用。
-它以什么方式失败了?2) 为什么要在导入中使用失败的
js
文件?如果任何操作失败,那么不仅
trix
,而且所有代码和失败后的所有导入都不会执行。3) 如果您删除
$(文档),则仍会发生这种情况。在(“TurboLink:load”、()=>{$('[data toggle=“tooltip”]')。tooltip()$('[data toggle=“popover”]')).popover()})上,您收到的实际错误消息是什么?是,如果我删除那个代码,它仍然会发生。还有其他想法吗?@marcamillion如果你不提供任何其他信息,我怀疑会有其他想法。如果你把问题保持原样,那么我在下面的评论就是你的答案:
trix
或任何东西都没有办法也没有理由被执行。错误应该是固定的,而不是避免的。