javascript - 将 NPM javascript 库添加到 Laravel 8
问题描述
我正在使用mobiscroll javascript 组件库和我正在构建的新 Laravel 8 应用程序。我通过简单地将缩小的 css / js 复制到我的 laravel 应用程序的public/css
和public/js
目录中,然后将脚本 / css 文件推送到布局的stack
.
我希望能够通过 npm 安装模块并引用模块来更“本机”地要求这些。在一个反应应用程序中,我对此没有任何问题——但它是如何在 laravel 中完成的?
我已经尝试添加window.mobiscroll = require('@mobiscroll/javascript');
到bootstrap.js
文件中,因为这似乎是使axios
和_
库可用的方式,但是Uncaught ReferenceError: mobiscroll is not defined
当我尝试初始化组件时仍然出现错误。
我也尝试将它添加到app.js
文件中,如下所示:
require('alpinejs');
require('@mobiscroll/javascript');
与以前相同的错误。我正在运行npm run watch
,因此该mix
过程正在发生并且每次尝试都成功,所以我认为这不仅仅是缓存或编译的问题。
我没有在 SO 或 laravel 文档上看到任何似乎解决此问题的内容。
编辑:有同样的问题dayjs
,添加通过npm i dayjs
,添加到bootstrap.js
使用window.dayjs = require('dayjs');
,通过混合编译,清除所有缓存,仍然出现错误dayjs is not defined
。
解决方案
首先,在你的 Laravel 根文件夹中安装 Mobiscroll。
npm install @mobiscroll/javascript-lite --save-dev
然后你想在适当的地方引用 JS 和 CSS。
在资源/js/bootstrap.js 中。
try {
window.mobiscroll = require('@mobiscroll/javascript-lite');
require('bootstrap');
} catch (e) {
}
在资源/css/app.css 中。
@import '~@mobiscroll/javascript-lite/dist/css/mobiscroll.css';
如果你的 webpack.mix.js 是这样的......
const mix = require('laravel-mix');
mix.js('resources/js/app.js', 'public/js')
.postCss('resources/css/app.css', 'public/css', [
//
]);
做一个npm run prod
.
确保在 Blade 模板/布局中引用生成的 CSS 文件。
<link type="text/css" rel="stylesheet" href="{{ mix('css/app.css') }}">
另外,对于 JS。
<script src="{{ mix('js/app.js') }}" defer></script>
推荐阅读
- javascript - 如果我无法返回操作结果,如何返回上一个 location.href
- yii2 - Yii2 查询 where 和 or
- javascript - 使用 TestCafe 测试滑块元素的问题
- excel - 如何以特定模式移动单元格
- python - 在 odoo/python 中无中断地引发错误/警告
- javascript - 如何使用 java 脚本打开带有绑定参数的新选项卡
- python - model.summary error for RNN. This model has not yet been built
- javascript - 如何从只能返回有限值的数组前面进行重复数据删除?
- excel - 复制粘贴以等号开头的单元格 (=====)
- firebase - Firebase cloudstore在flutter中获取文档中的所有集合