gpt4 book ai didi

laravel - 在 Laravel 中通过 npm 安装和使用 js-cookie 依赖项

转载 作者:行者123 更新时间:2023-12-05 02:10:27 26 4
gpt4 key购买 nike

我尝试在我的 Laravel 项目中使用 npm 安装 js-cookie ( https://github.com/js-cookie/js-cookie ),但我一直收到相同的 ReferenceError: Cookies is not defined 错误。它与 js-cookie 的本地副本和通过 CDN 一起工作得很好,但我想弄清楚为什么它不能通过 npm 工作。

我尝试过的:

npm i js-cookie  
npm i js-cookie --save
npm i js-cookie --save-dev

其次是

npm run dev

我得到的结果:
- js-cookie v 2.2.1 包含在依赖项或 devDependencies 下的我的 package.json 中
- js-cookie 出现在 node_mnodules 下
- ReferenceError: Cookies is not defined 在尝试使用任何 Cookies 函数时

如有任何帮助,我们将不胜感激!

编辑 1 - 包括我的所有代码
我的 master.blade.php 看起来像这样:

<!DOCTYPE html>
<html>
<head>
<meta name="csrf-token" content="{{ csrf_token() }}">
<title>@yield('title')</title>
<link rel="stylesheet" type="text/css" href="{{ asset('css/app.css') }}">
<link rel="stylesheet" type="text/css" href="{{ asset('css/nightmode-toggle.css') }}">
<script type="text/javascript" src="{{ asset('js/app.js') }}"></script>
<script type="text/javascript" src="{{ asset('js/nightmode-toggle.js') }}"></script>
</head>
<body id="mybody">
@include('layouts.navbar')
<div class="content">
@yield('content')
</div>
</body>
</html>

nightmode-toggle.css 的内容只是我在单击“夜间模式”复选框时打开和关闭的几个类:

body.night {
background:black;
color:white;
}

.navbar.night {
background-color:black;
color:white;
}

etc...

nightmode-toggle.js内容:

$(document).ready(function () {
if (Cookies.get('nightmode-toggle') != 'on' && Cookies.get('nightmode-toggle') != 'off') {
Cookies.set('nightmode-toggle', 'off');
}

if (Cookies.get('nightmode-toggle') == 'off' && $('body').hasClass('night')) {
$('body').toggleClass('night');
$('.navbar').toggleClass('night');
etc...
} else if (Cookies.get('nightmode-toggle') == 'on' && !$('body').hasClass('night')) {
$('body').toggleClass('night');
$('.navbar').toggleClass('night');
etc...
}

$('#nightmode-toggle').click(function () {
if (Cookies.get('nightmode-toggle') == 'off') {
Cookies.set('nightmode-toggle', 'on');
$('body', ).toggleClass('night');
$('.navbar').toggleClass('night');
etc...

} else {
Cookies.set('nightmode-toggle', 'off');
$('body').toggleClass('night');
$('.navbar').toggleClass('night');
etc...
}

$.ajax({
type: "POST",
url: "/toggle",

success: function () {
},
error: function () {
alert('Could not switch to Night Mode for some reason! Please try again later.');
}
});
})
});

正如我之前所说,如果我在 header 中包含一个本地 js-cookie.js 文件,就像这样

<script type="text/javascript" src="{{ asset('js/js-cookie.js') }}"></script>

或者如果我在标题中包含 CDN,就像这样

<script src="https://cdn.jsdelivr.net/npm/js-cookie@beta/dist/js.cookie.min.js"></script>

一切正常,也就是 cookie 被正确记录并且类根据 cookie 发生变化。但我真的很想弄清楚如何按照开发人员的指示使用 npm 包含 js-cookie。

最佳答案

您需要根据 the docs 将库导入 bootstrap.jsapp.js 作为 ES6 模块

import Cookies from 'js-cookie'

然后像这样在其他任何地方使用它

Cookies.set('foo', 'bar')

关于laravel - 在 Laravel 中通过 npm 安装和使用 js-cookie 依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58633156/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com