Rails - 使用 browserify rails 在 application.js 中访问 node_modules

Rails - access node_modules in application.js with browserify rails

browserify-rails documentation 表示 "By default only files in /app and /node_modules are browserified"。但是,当我从 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'

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

var intlTelInput = require("intlTelInput");

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

import intlTelInput from "intlTelInput"