如何在安装 npm 包后在 Laravel 中使用它们?

4
如何在Laravel安装npm包后使用它?
例如,我需要使用包sweetalert2,首先要安装它:
npm install --save sweetalert2

现在,在laravel中,我需要在\resources\assets\js\bootstrap.js文件中要求它吗?

它的默认内容如下:

window._ = require('lodash');

try {
    window.$ = window.jQuery = require('jquery');

    require('bootstrap');
} catch (e) {}


window.axios = require('axios');

window.axios.defaults.headers.common['X-CSRF-TOKEN'] = window.Laravel.csrfToken;
window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';

看起来 lodashjquerybootstrapaxios 已经被引入到 Laravel 中,但这四个句子是不同的,它们分别是:

window._ = require('lodash');
window.$ = window.jQuery = require('jquery');
require('bootstrap');
window.axios = require('axios');

问题:

1、这4个句子为什么不一样?

2、我想要使用sweetalert2包,应该如何编写代码?

1个回答

7

您只需要在 bootstrap.js 文件中进行 require

require('sweetalert2');

假设您正在使用scss,则在入口的.scss文件中进行以下操作:
@import "node_modules/sweetalert2/src/sweetalert2";

此外,您不必手动将bootstrap附加到window的原因是在加载时它会自动完成。这是因为它假定window实例始终存在,因为它是一个样式框架。其他库可能不会这样做的原因之一是因为它们可以在未定义window的环境中使用。希望这可以帮到您!

@zwl1619 这个回答解决了你的问题吗?如果是,请标记为已接受。 - Rwd
我跟着你的回答和Swal文档尝试了,但仍然出现“Uncaught ReferenceError: Swal is not defined”的错误。对我来说,npm一直很晦涩,我正在努力弄清楚并彻底使用它。我运行了npm run watch,如果不加上scss部分,就会返回成功。我使用的是Laravel 8和Laravel Mix v6.0.37。你能帮我吗? - w3spi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接