2

browserify -rails 文档说“默认情况下,只有 /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'
4

1 回答 1

2

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

var intlTelInput = require("intlTelInput");

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

import intlTelInput from "intlTelInput"
于 2016-04-29T00:14:24.123 回答