尝试使用https://timepicker.co/使用npm和webpack。
我用npm命令npm i jquery
安装了jQuery,然后用将其导入到我的主js文件中
import $ from 'jquery';
这很好用,我可以使用jQuery。
接下来,按照说明,我用npm命令npm i jquery-timepicker
安装了时间选择器
这为package.json文件添加了时间选择器:
"dependencies": {
"googleapis": "^108.0.0",
"jquery": "^3.6.1",
"jquery-timepicker": "^1.3.3"
},
webpack构建得很好。然而,当页面加载时,我运行命令来启动我的输入字段
$('input.timepicker').timepicker({});
我在控制台中得到这个错误:
Uncaught TypeError: jquery__WEBPACK_IMPORTED_MODULE_6___default(...)(...).timepicker is not a function
说,阅读文件
要使用jQuery Timepicker,您需要包含两个文件:jquery.timepicker.min.js和jquery.ttimepicker.min.css
我是一个使用npm的新手,我认为我会使用以下内容导入js文件:
import timepicker from 'jquery-timepicker';
但这引发了一个webpack错误。
我觉得我错过了一些简单的东西。如何使用webpack和npm包含这两个必需的文件?
更新1:尝试在我的主index.js文件中导入css和js
import 'jquery-timepicker/jquery.timepicker.css';
import 'jquery-timepicker/jquery.timepicker';
仍然得到错误:Uncaught TypeError: jquery__WEBPACK_IMPORTED_MODULE_6___default(...)(...).timepicker is not a function
我相信您正面临这个问题,因为jquery-timepicker
没有index.js
文件。来源:https://unpkg.com/browse/jquery-timepicker@1.3.3/
尝试:
import 'jquery-timepicker/jquery.timepicker.css';
import 'jquery-timepicker/jquery.timepicker';
这应该会自动设置插件。
为了帮助像我这样的新手,我用@acdccjunior的答案作为关键,但我必须做很多事情才能做到这一点。
以下是如何使用https://timepicker.co/使用npm和webpack。
步骤1.使用npm:npm i jquery-timepicker
安装时间选择器
步骤2.由于时间选择器需要jquery,请使用npm:npm i jquery
安装jquery
步骤3.您需要在要使用的页面上使用javascript和css。因此,请使用webpack导入两者。
import 'jquery-timepicker/jquery.timepicker.css';
import 'jquery-timepicker/jquery.timepicker';
步骤4.Webpack会抱怨,因为它不知道如何开箱即用地处理css。因此,您需要安装css加载程序和样式加载程序(文档中没有明确说明这一点。
npm install --save-dev css-loader
npm install --save-dev style-loader
步骤5.要完成安装,请告诉webpack如何使用这两个加载程序。添加到您的webpack.config.js
文件中,确保[]
阵列中的顺序正确:
module: {
rules: [
{
test: /.css$/i,
// order is load css first, then put that on the page using style loader.
// But they load in reverse order so the order in the array is important.
use: ["style-loader", "css-loader"],
},
],
},
第6步:CSS现在会很好地加载,但在你告诉webpack提供jQuery作为插件之前,你会得到错误jquery__WEBPACK_IMPORTED_MODULE_6___default(...)(...).timepicker is not a function
,这将使它在全球范围内可用。这篇文章向我展示了如何做到这一点,因此我们将添加到您的webpack.config.js
文件中:
plugins: [
new webpack.ProvidePlugin({
$: 'jquery',
jQuery: "jquery"
})
],
步骤7:这将引发一个错误,说明webpack未定义。这太疯狂了,因为这是一个webpack配置文件。但是new.webpack
没有被识别,所以我们必须告诉webpack,什么是webpack
const webpack = require('webpack');
现在我们安装了jQuery,jQuery是一个全局变量。我们已经安装了jquery时间选择器,并将其导入到我们的主js文件中。我们已经安装了jquery时间选择器css,并将其导入到我们的主js文件中,并由webpack识别。
现在它起作用了。现在我们可以休息了。