Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
进口Gem&x27;s带有Rails网页包Rails erb加载程序的javascript文件夹_Javascript_Ruby On Rails_Ruby_Webpack - Fatal编程技术网

进口Gem&x27;s带有Rails网页包Rails erb加载程序的javascript文件夹

进口Gem&x27;s带有Rails网页包Rails erb加载程序的javascript文件夹,javascript,ruby-on-rails,ruby,webpack,Javascript,Ruby On Rails,Ruby,Webpack,我正在尝试使用Rails 6 webpacker从gem文件夹导入javascript。我只看到每次导入一个文件就可以做到这一点。是否可以为gem获取所有扩展名为*.js的文件 javascript/packs/application.js.erb import "<%= File.read(File.join(Gem.loaded_specs['active_storage_drag_and_drop'].full_gem_path, 'lib', 'assets', 'javascri

我正在尝试使用Rails 6 webpacker从gem文件夹导入javascript。我只看到每次导入一个文件就可以做到这一点。是否可以为gem获取所有扩展名为*.js的文件

javascript/packs/application.js.erb

import "<%= File.read(File.join(Gem.loaded_specs['active_storage_drag_and_drop'].full_gem_path, 'lib', 'assets', 'javascripts', 'active_storage_drag_and_drop/*.js')) %>";

此软件包在NPM上提供:

我会这样做:

yarn add active_storage_drag_and_drop
然后在您的网页包js文件中:

import*作为ActiveStorageDragAndDrop从“活动存储”拖放
window.ActiveStorageDragAndDrop=ActiveStorageDragAndDrop//从1.0.3版起需要

我已经在一个分支中创建了一个工作演示

因为从v1.0.3开始,会出现在项目JS中分配导入的var 在软件包更新之前,这是必需的

对于基于Ruby的依赖项,您可能仍然需要gem文件中的gem


通常,我不建议尝试通过ERB中的gem路径查找rubygems提供的javascript依赖项。迁移到Webpack/Webpack的优点之一是,您应该尽可能利用NPM处理依赖项

它不会加载活动存储和拖放的所有依赖项。我在Rails 6上测试了它。您可以尝试使用测试项目,以查看在加载组件时视图中是否出现任何错误。它没有显示动画,只有表面是可点击的,你可以添加文件而不知道它们是否已被附加。它似乎包含了gem提供的确切JS:看起来JS引用了一个全局变量。我将用一个解决方案来更新答案,但是我会认为这是ActudiestRealDracyand AtDROP项目中的一个bug。我不能更新投票。其他人必须这样做。谢谢,你能把这个问题标记为正确的,让其他人看到吗?
yarn add active_storage_drag_and_drop