webpack 筆記

https://webpack.js.org/concepts/modules/#what-is-a-webpack-module

webpack supports modules written in a variety of languages and preprocessors, via loaders. Loadersdescribe to webpack how to process non-JavaScript modules and include these dependencies into your bundles.

webpack,主要是爲了解決前端模塊化的問題,它的作用是使用各種loader對使用不同語言、預處理器寫的模塊文件編譯成瀏覽器兼容的前端代碼。webpack通過各種插件起作用,例如將es2015語法轉成前端兼容的js語法需要通過babel,Sass樣式轉成普通的css樣式代碼需要使用sass插件,而爲了解析vue格式的代碼,則需要使用vue-loader進行解析。

vue-cli扮演的角色就是針對使用vue框架開發的場景提供許多便利的功能,也就是所謂的腳手架。其中重要的功能配置好了webpack以及編譯vue程序源碼所需的各種插件(包括vue-loader)。有了vue-cli就省去了配置各種預處理器插件的繁瑣工作。

前面提到的語言/預處理器實際上是一種語法,語言包括:TypeScript、CoffeeScript、ES6語法等,預處理器包括Sass、Less、Stylus。在這裏所謂的預處理器不是一種實體,而是約定/規範,跟編程語言的規格說明一樣,與其實現是獨立的。就好比python的代碼可以用cpython/jython/pypi等不同的解釋器運行一樣。

也就是說,只要你能提供相應的loader插件,你也可以按照自己的想法實現預處理器語法。

上述webpack的功能被稱爲構建,也被成爲編譯,這種編譯不是將源碼編程機器碼,而是將源碼轉成另一種語言。而真正運行這些目標代碼的解釋器是瀏覽器。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章