vue-cli3專案引用zepto報$不存在怎麼處理
阿新 • • 發佈:2020-10-27
異常描述:
查了下,是這個原因導致的:
只使用了 AMD 規範的模組匯出方法 define,沒有用 CommonJs 規範的方法 module.exports 來匯出模組,不過這不是造成報錯的原因。
操作步驟:
第一步:安裝 script-loader exports-loader:
npm install script-loader exports-loader --save-dev
第二步:對專案進行配置以支援zepto:
專案根目錄下建立vue.config.js檔案,編寫以下程式碼:
1 /** 2 * 專案配置檔案 3 * vue.config.js 4 */ 5module.exports = { 6 chainWebpack: config => { 7 //1.專案通用標題(如果需要就配置,不需要這部分可以刪除) 8 config 9 .plugin('html') 10 .tap((args) => { 11 args[0].title = 'vue-cli3'; 12 return args; 13 }); 14 //2.支援zepto的配置 15 config.module 16 .rule('zepto') 17 .test(require.resolve('zepto'))18 .use('exports') 19 .loader('exports-loader?window.Zepto') 20 .end() 21 .use('script') 22 .loader('script-loader') 23 .end() 24 //3.釋放$(index.html中引用需要,如果是main.js中匯入則不需要) 25 config 26 .plugin('env') 27 .use(require.resolve('webpack/lib/ProvidePlugin'), [{28 $: 'zepto' 29 }]) 30 } 31 }
如上,第二項配置是支援zepto的主要配置,第三項配置是針對index.html中直接引用zepto.js的,如果是main.js中引入,那麼不需要這個配置了。
第三步,安裝zepto:
有兩種方式:
index.html直接引用zepto.js檔案
<script src="<%= BASE_URL %>js/zepto.min.js" type="text/javascript"></script>
vue.config.js的配置如下:
/** * 專案配置檔案 * vue.config.js */ module.exports = { chainWebpack: config => { //支援zepto的配置 config.module .rule('zepto') .test(require.resolve('zepto')) .use('exports') .loader('exports-loader?window.Zepto') .end() .use('script') .loader('script-loader') .end() //釋放$(index.html中引用需要,如果是main.js中匯入則不需要) config .plugin('env') .use(require.resolve('webpack/lib/ProvidePlugin'), [{ $: 'zepto' }]) } }
2.使用npm安裝zepto,然後main.js中引入:
npm install zepto --save
main.js:
import $ from 'zepto'
vue.config.js配置如下:
/** * 專案配置檔案 * vue.config.js */ module.exports = { chainWebpack: config => { //支援zepto的配置 config.module .rule('zepto') .test(require.resolve('zepto')) .use('exports') .loader('exports-loader?window.Zepto') .end() .use('script') .loader('script-loader') .end() //釋放$(index.html中引用需要,如果是main.js中匯入則不需要) config .plugin('env') .use(require.resolve('webpack/lib/ProvidePlugin'), [{ $: 'zepto' }]) } }
然後,就可以愉快的使用zepto了。
注意事項:
上面兩種方式安裝方式都可以,但是不管用哪種方式,都是需要安裝exports-loaderscript-loader這兩個依賴元件,且要配置 vue.config.js 檔案。