Rails v5.1.4 Yarn node_modules //= 需要不工作

ekr*_*011 5 require node-modules ruby-on-rails-5 yarnpkg

我只是想在我通过yarn安装的一些javascript节点模块中引入require。我的印象是,您在 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
Run Code Online (Sandbox Code Playgroud)

我没有使用 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 .
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?它具有与钱包地址验证器相同的树结构,但我不能要求它?

ekr*_*011 4

为将来。

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

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

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

答案是 //= require Clipboard/dist/clipboard

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

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