拉拉维尔。 webpack.mix.php 是运行 Javascript 的唯一方法吗?

Posted

技术标签:

【中文标题】拉拉维尔。 webpack.mix.php 是运行 Javascript 的唯一方法吗?【英文标题】:Laravel. Is webpack.mix.php the only way to run Javascript? 【发布时间】:2021-01-04 19:42:14 【问题描述】:

我试图向文本区域添加一个简单的字符数,但我花了一天的时间才让它工作。我想发布我学到的东西,并要求任何有帮助的用户澄清。

在我将脚本上传到 ProjectRoot/resources/js/app.js 之前,Laravel 没有运行 javascript

var maxLength = 100;
$('textarea').keyup(function() 
  var length = $(this).val().length;
  var length = maxLength-length;
  $('#chars').text(length);
);

一旦代码出现,我就运行 npm run dev(我已经在这个节点上安装了 npm),然后才运行了 javascript。代码被传输到 ProjectRoot/public/js/app.js 目录中的 app.js 文件(这是一个我找不到我的代码的大文件)目录。我假设,如果我错了,请纠正我,这意味着 npm run dev "converts" /"transfers" /"compiles" (这里的正确词是什么?) javascript 到 laravel webmix 系统。这就是我的知识和解决问题的能力耗尽的地方。

this 和 this 之类的文章听起来像是我可以将 javascript 放入任何 xxx.blade.php 文件中。其他一些不起作用的角度:

在 public/js 目录中导入 .js 文件。不走运。 <script src="asset('js/count.js')"></script> 在 app.blade.php 或带有文本区域的刀片文件中尝试时不起作用。 包括*@section('script')* 也不起作用。

我在 chrome 检查器控制台中遇到了经典的 Uncaught ReferenceError: $ is not defined,但倒计时有效,所以我不确定发生了什么。

我可以在我的 xxx.blade.php 中使用 Laravel 运行 javascript inline 吗?

【问题讨论】:

【参考方案1】:

在您要使用脚本的刀片文件中:

@push('js')
<script>
var maxLength = 100;
$('textarea').keyup(function() 
  var length = $(this).val().length;
  var length = maxLength-length;
  $('#chars').text(length);
);
</script>
@endpush

在您的 app.blade.php(包含所有 js/css 文件的主刀片)中

@stack('js')

【讨论】:

谢谢!你会去哪里看这个? push 命令用于“追加到集合”。为什么我需要将它附加到集合中?

以上是关于拉拉维尔。 webpack.mix.php 是运行 Javascript 的唯一方法吗?的主要内容,如果未能解决你的问题,请参考以下文章

在控制器中调用自定义 Artisan 命令 |拉拉维尔

拉拉维尔。测试清除活动数据库

哎呀,看起来像出事了。拉拉维尔 5.0

Laravel 图像规则验证不适用于 Laravel 8,但适用于 Laravel 7 |拉拉维尔 |图片 |验证

当响应是错误时,为啥承诺会进入 .then() ? - 拉拉维尔

如何获得价值摘要 |拉拉维尔