【问题标题】:Rails - access node_modules in application.js with browserify railsRails - 使用 browserify rails 访问 application.js 中的 node_modules
【发布时间】:2023-03-16 17:06:02
【问题描述】:

browserify-rails documentation 表示“默认情况下,只有 /app 和 /node_modules 中的文件是浏览器化的”。但是,当我从 npmjs 安装一个包并尝试在 application.js 中引用它时,应用程序找不到它。有没有办法使用 browserify-rails 在我的 Rails 应用程序中要求 node_modules?

# command line
$ npm intl-tel-input --save

# application.js.coffee
#= require intlTelInput

# throws error
Error: Cannot find module 'intlTelInput' from '.../app/assets/javascripts'

【问题讨论】:

    标签: ruby-on-rails-4 browserify-rails


    【解决方案1】:

    当您使用 #= require ... 时,它仍然使用 Rails 资产管道,并且无法访问 npm 模块。你应该做的是使用

    var intlTelInput = require("intlTelInput");
    

    哪个 browserify 将从 npm 模块中解析和查找。如果你已经包含了一个 ES6 解析器(比如 babelify),那么你甚至可以这样做

    import intlTelInput from "intlTelInput"
    

    【讨论】:

    • 感谢您的快速回复!这让我更近了一步,因为它似乎加载了文件,但似乎没有将其添加为 jQuery 扩展:$(...).intlTelInput is not a function 听起来我可能需要以其他方式处理它?
    • 如果你想在你的 browserify 模块中使用 jQuery,那么同样需要它。确保您在 package.json 中添加了 jQuery 作为依赖项,然后您可以在需要添加 var $ = require('jQuery'); 的地方要求它
    猜你喜欢
    • 2016-06-28
    • 1970-01-01
    • 1970-01-01
    • 2018-08-26
    • 2013-06-02
    • 2021-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多