ruby-on-rails-5 - Rails v5.1.4 Yarn node_modules//= 要求不工作

标签 ruby-on-rails-5 require node-modules yarnpkg

我只是试图在我通过 yarn 安装的一些 javascript 节点模块中使用。我的印象,它对其他一些人有用的是你在 application.js 中做//= require [package_name]。

缩小后的 dist 文件与包名同名。

模块的树形结构为:

clipboard
  dist
    clipboard.js  
    clipboard.min.js
  composer.json
  contributing.md
  package.js
  package.json
  readme.md
  webpack.config.js

我没有使用 webpack。我收到此错误:
Sprockets::FileNotFound in PaperWallets#template

couldn't find file 'clipboard' with type 'application/javascript'
Checked in these paths: 
  /home/me/Desktop/Rails/paperwallet/app/assets/config
  /home/me/Desktop/Rails/paperwallet/app/assets/images
  /home/me/Desktop/Rails/paperwallet/app/assets/javascripts
  /home/me/Desktop/Rails/paperwallet/app/assets/stylesheets
  /home/me/.rvm/gems/ruby-2.4.1/gems/coffee-rails-4.2.2/lib/assets/javascripts
  /home/me/.rvm/gems/ruby-2.4.1/gems/jquery-rails-4.3.1/vendor/assets/javascripts
  /home/me/.rvm/gems/ruby-2.4.1/gems/actioncable-5.1.4/lib/assets/compiled
  /home/me/.rvm/gems/ruby-2.4.1/gems/actionview-5.1.4/lib/assets/compiled
  /home/me/.rvm/gems/ruby-2.4.1/gems/turbolinks-source-5.0.3/lib/assets/javascripts
  /home/me/Desktop/Rails/paperwallet/node_modules
  /home/me/.rvm/gems/ruby-2.4.1/gems/bootstrap-sass-3.3.7/assets/stylesheets
  /home/me/.rvm/gems/ruby-2.4.1/gems/bootstrap-sass-3.3.7/assets/javascripts
  /home/me/.rvm/gems/ruby-2.4.1/gems/bootstrap-sass-3.3.7/assets/fonts
  /home/me/.rvm/gems/ruby-2.4.1/gems/bootstrap-sass-3.3.7/assets/images

Extracted source (around line #17):
15: //= require jssha
16: //= require wallet-address-validator
17: //= require clipboard
18: //= require bootstrap-sprockets
19: //= require turbolinks
20: //= require_tree .

我究竟做错了什么?它与 wallet-address-validator 具有相同的树结构,但我不能要求它?

最佳答案

为 future 。

阅读 Sprockets 自述文件 (https://github.com/rails/sprockets#sprockets-directives)

注释掉的 application.js 文件中讨论了它如何从逻辑路径加载路径。所以它直接从它要查找的路径之一中查找文件。在我的例子中是 node_modules 文件夹。

但是,它不是直接脱离 node_modules 文件夹,而是位于 node_modules 内的剪贴板/dist 文件夹中。

答案是//= 需要剪贴板/dist/剪贴板

我不确定为什么//= require wallet-address-validator 有效,因为它在 node_modules 中具有相同的 wallet-address-validator 文件夹,然后是/dist/wallet-address-validator.min.js

如果有人知道,我很想知道!

关于ruby-on-rails-5 - Rails v5.1.4 Yarn node_modules//= 要求不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50902020/

相关文章:

ruby-on-rails - Rails - 从一个模型在另一个模型中创建实例

php - 警告 : require(. ..):无法打开流:没有这样的文件或目录

javascript - React Navigation - 标题的渐变颜色

javascript - 谷歌云功能::无法使用 'require'语句

ruby - 第二次如何require

npm - npm 使用什么协议(protocol)和端口?

javascript - 我们如何信任 npm 模块?

ruby-on-rails - 如何修复 `new' :String 的未定义方法 "Rack::Cors"

ruby-on-rails - 如果参数为空,如何从数据库 Rails 设置默认值

mysql - Rails 5 左外连接使用 includes() 和 where()