我正在尝试学习Rails 7和导入Map,我正在学习DHH的这个教程:https://www.youtube.com/watch?v=PtxZvFnL2i0
这段视频大约有一年的历史了,基于Rails 7的alpha版本,但它在一定程度上是有效的,现在我正处于这个阶段,努力找出哪些地方已经改变了,哪些地方需要改变。
直到17:18,他才将Vue.js添加到演示中。这是他第一次将自定义的JS文件添加到应用程序中,而不是导入库。在教程中,他将以下代码行添加到application. js中:
import "comps/vue_components"
该行在我的实现中失败,并出现以下JS错误:
未捕获的类型错误:解析模块说明符"comps/vue_components"失败。相对引用必须以"/"、."/"或.."/"开头。
我尝试将该行更新为以下内容以解决错误:
import "./comps/vue_components"
但这只是默默地失败了。看起来它完全扼杀了javascript的执行-如果我在application.js中放入一条console.log语句,只有当我省略或注解掉导入vue组件的行时,它才会显示在控制台中。
下面是我的config/importmap. rb文件:
# Pin npm packages by running ./bin/importmap
pin "application", preload: true
pin "@hotwired/turbo-rails", to: "turbo.min.js", preload: true
pin "@hotwired/stimulus", to: "stimulus.min.js", preload: true
pin "@hotwired/stimulus-loading", to: "stimulus-loading.js", preload: true
pin_all_from "app/javascript/controllers", under: "controllers"
pin "trix"
pin "@rails/actiontext", to: "actiontext.js"
pin "md5", to: "https://cdn.skypack.dev/md5"
pin "vue", to: "https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.esm.browser.js"
pin_all_from "app/javascript/components", under: "comps"
这是我的application.js文件:
// Configure your import map in config/importmap.rb. Read more: https://github.com/rails/importmap-rails
import "@hotwired/turbo-rails"
import "controllers"
import "trix"
import "@rails/actiontext"
import "./comps/vue_components"
console.log('hello')
1条答案
按热度按时间iih3973s1#
那个视频不是教程,"alpha预览"是它标题中的意思。你应该找到一些最新的东西,从那以后发生了很多变化。但是要解决你的问题,请这样做:
你应该把你的ruby升级到最新版本,不要用
2.7.2
开始任何新的东西。