Uncaught Error: Script error for "popper.js", needed by: bootstrap https://requirejs.org/docs/errors.html#scripterror at makeError (require.js:168) at HTMLScriptElement.onScriptError (require.js:1738)
使用require.js 模塊化開發引入bootstrap 4.1.1 時會報錯,如上,在網上找到一個解決辦法,在配置require.js 時添加map參數,最終解決方案如下:
require.config({ baseUrl: '/vendors', paths: { 'jquery': 'jquery/dist/jquery.min', 'bootstrap': 'bootstrap/dist/js/bootstrap', 'popper': 'popper.js/dist/umd/popper.min', ... }, shim: { 'bootstrap': ['jquery'] }, map: { '*': { 'popper.js': 'popper' } } });
核心解決方案是:
在require的配置中 map 里加配置 'popper.js': 'popper'。
這是因為在Bootstrap里定義的是require('popper.js'), 而不是require標准的require('popper'), 所以要在map里做一個轉換以讓require.js識別。
以后遇到同類情況也可以用些方案解決。
參考:https://my.oschina.net/justplay/blog/2992283