当前位置: 首页 > 知识库问答 >
问题:

Laravel访问.blade.php js中的npm包

濮阳景天
2023-03-14

什么是正确的方法来访问npm包js_sectionblade.php文件

资源\js\app.js

import Twilio from 'twilio-video';
window.Twilio = Twilio;

还尝试了:

require('twilio-video');

index.blade.php

@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

错误:未捕获引用错误:未定义require

共有2个答案

司马祖鹤
2023-03-14

要求和导入是Laravel混合(webpack)的命令

您已经运行了Laravel-混合从资源到捆绑包(准备好的文件)的构建结果。

在终端运行

npm install
npm i twilio-video
npm run dev
张嘉佑
2023-03-14

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

用custom.js写代码

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脚本和环境)

let mix = require('laravel-mix');

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

在blade.php中

@section('js_section')
    <input type="hidden" class="room-token" value="{{ $result['token'] }}" />
    <script src="{{ asset( 'path/to/complied/custom.js' ) }}"></script>
@endsection
 类似资料:
  • 我想显示来自特定用户的数据库(sql)的数据。 我有3个表:用户存储区域 以下是表之间的关系: 用户有一个区域区域有许多商店 基本上我想展示的是,每个用户都有自己的区域,有很多商店。 用户模型 面积模型 商店模型 我的数据库看起来像这样: 用户表 id名称角色\u id区域\u id 区域表 id nameuser_id 存储表 id名称区域\u id 我如何访问用户- 这就是我目前得到的 谢谢你

  • 试用节点版本:12.20.1、14.15.4、15.6.0 当尝试编译scss文件时,我总是得到以下错误: 再现的步骤: 安装fresh Laravel 8 重命名文件“resources/css/app.css”=>“resources/css/app.scss” 运行“npm install” run'npm run dev'//这将自动安装(sass、sass-loader和Resoluti

  • 我想访问嵌套集合属性与以下结构<代码>["角色"= 为了得到我想要的,我使用laravel集合方法通过执行

  • 我试图通过使用Laravel Eloquent获得数据,但我无法访问。无论何时尝试,它都显示尝试获取非对象的属性“name” 我有两个模型。类别和文章。类别有许多文章。以下是模型: 类别模型 文章模式 物品管理员 查看刀片(admin.article.pending) 在这里的刀片,我不能访问类别通过雄辩的属于功能,我没有得到背后的原因得到的消息: ErrorException(E_ERROR)试

  • 我想更改一个数据属性,并在Laravel中的Vue实例上运行一个方法。然而,由于使用webpack和laravel,我似乎无法访问实例,我希望如何: 所以似乎不是我的Vue类的正确实例。 下面是我正在加载的刀片视图,正如您所看到的,我在main中添加了一个脚本标记,只是试图更改Vue实例数据属性,并运行一个方法。 下面是我(资源/资产/js/app.js)的一部分: 如您所见,我希望通过我在中定义

  • 我使用命令php artisan migrate 在 laravel 5 中迁移我的数据库。它给了我一个错误: 异常“PDOException”,消息为“SQLSTATE[HY000][1045]拒绝对用户“home”@“localhost”访问(使用密码:YES)”