更新11 / 15-12:04PM:
正如@Adrian Roworth指出的那样。该标签需要先注册:
riot.register('app',App);
然后可以将其安装:
riot.mount('app',{
message: "hello!"
})
原始问题
过去,我将riot.js(v3)用于一些原型。为了方便起见,我还使用了浏览器内编译器。现在,我正在尝试进入生产流程,该流程涉及最新的riot.js版本(v4),webpack和npm。但是我以前的方法停止了工作,因此我无法在网上找到任何有用的材料。
这是我的代码:
index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title><%= htmlWebpackPlugin.options.title %></title>
</head>
<body>
<app></app>
</body>
</html>
index.js
import './styles/main.scss'
import * as riot from 'riot'
import App from './tags/app.tag'
riot.mount('app',{
message: "hello!"
})
app.tag
<app>
<h1>{ props.message }</h1>
</app>
Chrome控制台出现错误消息:
riot.esm.js:1790 Uncaught Error: The component named "app" was never registered
at panic (riot.esm.js:1790)
at mountComponent (riot.esm.js:2351)
at eval (riot.esm.js:2435)
at Array.map (<anonymous>)
at Module.mount (riot.esm.js:2435)
at eval (index.js:12)
at Module../src/index.js (main.bundle.js:504)
at __webpack_require__ (main.bundle.js:20)
at eval (webpack:///multi_(:8080/webpack)-dev-server/client?:2:18)
at Object.0 (main.bundle.js:538)