在 Laravel 中安装 npm 包后如何要求它?

zwl*_*619 4 javascript npm laravel-5

在 Laravel 中安装 npm 包后如何要求它?

例如?我需要包sweetalert2,先安装它?

npm install --save sweetalert2
Run Code Online (Sandbox Code Playgroud)

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

它的默认内容是这样的:

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';
Run Code Online (Sandbox Code Playgroud)

它看起来像lodashjquerybootstrapaxios被要求到laravel,但4句是不同的,他们是这样的:

window._ = require('lodash');
window.$ = window.jQuery = require('jquery');
require('bootstrap');
window.axios = require('axios');
Run Code Online (Sandbox Code Playgroud)

问题?

1?为什么这4个句子有差异?

2?我想要求包sweetalert2?我该怎么写?

Rwd*_*Rwd 7

您应该能够require在您的bootstrap.js文件中使用它:

require('sweetalert2');
Run Code Online (Sandbox Code Playgroud)

然后(假设您正在使用scss)在您的条目 .scss 文件中:

@import "node_modules/sweetalert2/src/sweetalert2";
Run Code Online (Sandbox Code Playgroud)

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

希望这可以帮助!