最近在做vue項目時,需要引入一個第三方的js文件,在index.html中通過以下方式引入JS文件編譯后,就報了這個問題。
根據廣大的網頁的思路,導致這一現象的原因可能有以下幾種:
原因一.引用文件的位置不正確
js文件放在static文件夾下和放在assets文件夾下的引用方式是不一樣的。簡而言之:
1.assets用來放置樣式、靜態圖片,只要src下面的組件中用到的資源就放在assets中。
2.static用來放沒有npm包的第三方插件,字體文件。
3.assets與components同級 components下的.vue引用靜態文件時,相對路徑為 ../assets/xxx/......
說明:如果js文件中包含es6語法的話,就不可以放在static文件夾下,因為static文件夾默認是不會被打包和編譯的,所以引用的時候會拋異常。
不同之處可以查看這篇博客:https://www.cnblogs.com/huangqiao/p/7798887.html
解決方法:
將src下的文件放到static下面去,在indec.html中的引用路徑采用相對路徑的表現形式,“./static/xxx/xxxxx.js”
原因二:配置信息不正確
如果你的js文件中包含es6語法,但沒有配置采用babel-loader來解析和轉化為es5語法的話,也會報這個錯誤。
解決方法:
需要在webpack.config.js里配置loader,vue-cli是不會幫忙配置的。
然后重新編譯項目,就可以解決,當然這個也沒有解決我的問題。
原因三:script的引入類型不對
解決辦法:將type="text/javascript"改為type="text/babel"
我嘗試了,不會再報以上錯誤,但是我引入的JS文件中的內容卻沒有編譯成功,里面的方法依然無法使用。
原因四.瀏覽器緩存問題
有時候可能是由於瀏覽器有緩存,一直無法加載最新的內容,所以當你改了以后,依然沒有生效。這種情況下,可以重新清除瀏覽器緩存,然后重新運行項目,就可以解決。
原因五.配置問題
1.在配置文件webpack.dev.config.js中,如存在以下內容,直接注釋掉,這兩部分在文件中不是連在一起的,大家注意觀察。
const CopyWebpackPlugin = require('copy-webpack-plugin') new CopyWebpackPlugin([ { from: path.resolve(__dirname, '../static'), to: config.dev.assetsSubDirectory, ignore: ['.*'] } ])
2.然后,將這個變量的值改為,然后重新運行,就對啦。
contentBase:false
如果以上方法都不能解決的話,那我也無能為力了,這是我今天試過的所有方法,祝大家開發順利。