在我的 requirejs-config.js
文件中放置在 [MyModule]/view/frontend
下,我包括所有这样的JS文件:
var config = {
paths: {
"jquery.min": "MyVend_MyModule/js/jquery.min",
"bootstrap": "MyVend_MyModule/js/bootstrap.min",
"bootstrap-datepicker": "MyVend_MyModule/js/bootstrap-datepicker.min",
"bootstrap-select": "MyVend_MyModule/js/bootstrap-select.min",
"jquery.smoothState": "MyVend_MyModule/js/jquery.smoothState",
"moment": "MyVend_MyModule/js/moment.min",
...
},
shim: {
// 'libname' : ['dependency']
"bootstrap": [ "jquery"],
"bootstrap-datepicker": [ "jquery"],
"bootstrap-select": [ "jquery"],
"jquery.smoothState": [ "jquery"],
"moment": [ "jquery"],
...
}
};
我的JS文件放置在[MyModule]/view/frontend/web/js
下,文件名与您匹配,我可以向您保证。
好吧,所以我做bin/magento setup:static-content:deploy
和bin/magento setup:upgrade
等。这些文件镜像到/pub/static/...
,所以我知道它们在那里。当我刷新页面时,/pub/static/_requirejs/...
下的requirejs-config.js
包括我的配置文件的内容,因此我也知道它也在那里。但是,JavaScript并未导入到页面中,我可以在查看网络选项卡时刷新(我正在使用Chrome(来确认这一点。所有导入的都是CSS文件,我在我的布局XML文件下声明的文件:
<css src="MyVend_MyModule::css/bootstrap-select.min.css"/>
<css src="MyVend_MyModule::css/animate.min.css"/>
<css src="MyVend_MyModule::css/famfamfam-flags.css"/>
<css src="MyVend_MyModule::css/magnific-popup.css"/>
...
那些可以正确导入的,它们在页面上。但是,即使文件在/pub/static
下,我的JS文件也没有导入,并且在requirejs-config.js
文件中。我做错了吗?没有错误,这使我更加困惑。
我也将在Magento SE上发布此信息,请不要标记为重复。
我建议您在requirejs-config文件中使用像bellow的代码。
var config = {
map: {
'*': {
moment: 'MyVend_MyModule/js/moment'
}
}
};
我不确定您是否可以在此处使用缩小文件。但是,管理员有一个选项可以在末尾缩小所有JS和CSS文件。