首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.blade.php js中的Laravel包

.blade.php js中的Laravel包
EN

Stack Overflow用户
提问于 2021-06-13 15:27:26
回答 2查看 778关注 0票数 0

在js_section of blade.php文件中访问npm包的正确方法是什么?

resources\js\app.js

代码语言:javascript
复制
import Twilio from 'twilio-video';
window.Twilio = Twilio;

也曾尝试过:

代码语言:javascript
复制
require('twilio-video');

index.blade.php

代码语言:javascript
复制
@extends('layouts.app')

@section('content')
    CONTENT...
@endsection

@section('js_section')
    <script>
        const {connect} = require('twilio-video');

        connect('{{$result['token']}}', {name: 'test2'}).then(room => {
            console.log(`Successfully joined a Room: ${room}`);
            room.on('participantConnected', participant => {
                console.log(`A remote Participant connected: ${participant}`);
            });
        }, error => {
            console.error(`Unable to connect to Room: ${error.message}`);
        });
    </script>
@endsection

错误:未定义未定义的ReferenceError: require

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-06-13 17:17:00

require()不是内置在浏览器中的,它是一个节点环境特性。因此它无法从刀片模板访问。您可以做的是在您的webpack.mix.js中编译另一个js文件,并将令牌从隐藏的输入传递到其中。

custom.js编写代码

代码语言:javascript
复制
const {connect} = require('twilio-video');

// it will contain $result['token']
const roomToken = document.querySelector('.room-token').value;

connect(roomToken, {name: 'test2'}).then(room => {
  console.log(`Successfully joined a Room: ${room}`);
  room.on('participantConnected', participant => {
    console.log(`A remote Participant connected: ${participant}`);
  });
}, error => {
  console.error(`Unable to connect to Room: ${error.message}`);
});

将其添加到webpack.mix.js中并编译(例如使用npm run dev -取决于您的package.json脚本和环境)

代码语言:javascript
复制
let mix = require('laravel-mix');

mix.js('path/to/custom.js', 'public/folder');

在你的blade.php

代码语言:javascript
复制
@section('js_section')
    <input type="hidden" class="room-token" value="{{ $result['token'] }}" />
    <script src="{{ asset( 'path/to/complied/custom.js' ) }}"></script>
@endsection
票数 3
EN

Stack Overflow用户

发布于 2021-06-13 15:54:13

“需求”和“导入”是Laravel的命令(Webpack)。

您已经运行了Laravel,用于从资源到包(准备好的文件)构建结果。

在终端运行

代码语言:javascript
复制
npm install
npm i twilio-video
npm run dev
票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67959895

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档