向Laravel 8添加NPM javascript库
我正在将javascript组件库与我正在构建的新Laravel8应用程序一起使用。我使用了试用脚本,只需将缩小的css/js复制到我的laravel应用程序的向Laravel 8添加NPM javascript库,javascript,laravel,npm,laravel-8,Javascript,Laravel,Npm,Laravel 8,我正在将javascript组件库与我正在构建的新Laravel8应用程序一起使用。我使用了试用脚本,只需将缩小的css/js复制到我的laravel应用程序的public/css和public/js目录,然后将脚本/css文件推到布局的堆栈中 我希望通过npm安装模块并引用模块,能够更“本地”地要求这些。在react应用程序中,我对此没有问题——但在laravel中是如何实现的 我尝试添加window.mobiscroll=require('@mobiscroll/javascript')到b
public/css
和public/js
目录,然后将脚本/css文件推到布局的堆栈中
我希望通过npm安装模块并引用模块,能够更“本地”地要求这些。在react应用程序中,我对此没有问题——但在laravel中是如何实现的
我尝试添加window.mobiscroll=require('@mobiscroll/javascript')
到bootstrap.js
文件,因为这似乎是axios
和库可用的方式,但我仍然得到未捕获的引用错误:当我尝试初始化组件时,没有定义mobiscroll
错误
我还尝试将其添加到app.js
文件中,如下所示:
require('alpinejs');
require('@mobiscroll/javascript');
和以前一样的错误。我正在运行npm run watch
,因此mix
过程正在发生,并且每次尝试都会成功,所以我不认为这只是缓存或编译的问题
在SO或laravel docs上,我没有看到任何能解决这个问题的东西
编辑:与dayjs
有相同的问题,通过npm i dayjs
添加,使用window.dayjs=require('dayjs')添加到bootstrap.js
代码>,通过mix编译,清除了所有缓存,但仍然出现错误dayjs未定义
首先,在根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运行prod
确保在刀片模板/布局中引用生成的CSS文件
<link type="text/css" rel="stylesheet" href="{{ mix('css/app.css') }}">
另外,对于JS
<script src="{{ mix('js/app.js') }}" defer></script>
您需要从概念上区分节点使用的库和打包的库,以便它们作为前端的静态库。看起来您需要这些LIB,这样您的项目就认为它们只用于构建过程中的节点,而不用于客户端。您需要查看如何打包第三方依赖项。。您是否调用mix
方法?感谢您@karl hill提供的解释和信息!