Rails 6 无法导入纱线依赖项:未捕获错误:模块解析失败:意外字符“#”(1:0)
Posted
技术标签:
【中文标题】Rails 6 无法导入纱线依赖项:未捕获错误:模块解析失败:意外字符“#”(1:0)【英文标题】:Rails 6 fails to import yarn dependency: Uncaught Error: Module parse failed: Unexpected character '#' (1:0) 【发布时间】:2021-05-30 10:04:51 【问题描述】:我将 Rainbow-code javascript 依赖项添加到我的 rails 6 应用程序中
yarn add rainbow-code
在app/javascripts/packs/rainbow.js
中添加了一个文件并尝试要求它
const rainbow = require('rainbow-code')
当我重新加载页面时,我得到了
browser.js:208 Uncaught Error: Module parse failed: Unexpected character '#' (1:0)
如果我查看node_modules/rainbow-code/src/rainbow-code.js
我看到了
1 #!/usr/bin/env node
2 /* eslint-disable */
3 var fs = require('fs');
4 global.Rainbow = require('../dist/rainbow.js');
5
6 var files = fs.readdirSync(__dirname + '/language');
7 for (var i = 0; i < files.length; i++)
8 require('./language/' + files[i]);
9
10
11 module.exports = global.Rainbow;
12 delete global.Rainbow;
13 /* eslint-enable */
所以它是一个以 shebang 开头的 shell 脚本,它试图被解析为一个显然无法工作的 javascript 文件。加载此依赖项的最佳方式是什么?
【问题讨论】:
好像是来自 Rainbow 的 bug。 【参考方案1】:库的包入口指向节点实现,它解释了您所看到的行为。
看起来浏览器版本位于项目的子目录中。试试这个:
import rainbow from ‘rainbow-code/dist/rainbow’
【讨论】:
以上是关于Rails 6 无法导入纱线依赖项:未捕获错误:模块解析失败:意外字符“#”(1:0)的主要内容,如果未能解决你的问题,请参考以下文章
Rails 6 + Webpacker:未捕获的类型错误:$(...).select2 不是函数