FrankKai / FrankKai.github.io

FE blog
https://frankkai.github.io/
363 stars 39 forks source link

Webpack那些事儿 #130

Open FrankKai opened 5 years ago

FrankKai commented 5 years ago
FrankKai commented 5 years ago

webpack 常用命令

FrankKai commented 5 years ago

webpack 疑问汇总

在拥有eslint-loader,vue-loader,babel-loader的情况下,一般来说会指定eslint-loader的enforce值为pre,确保首先验证.eslintrc.js中的eslint规则,通过验证再走后续的vue-loader和babel-loader。

引申问题:pitching是什么? 细力度的控制代码的执行loader的顺序,遇到某个module的pitch方法有return,即跳过后面的loader,进入已加载的loader执行处理。https://webpack.js.org/api/loaders/#pitching-loader

var fileLoader = require("file-loader");

return fileLoader.call(this, content); } 

- webpack-merge的作用是什么?
连接数组,合并对象。
```js
// foo.js
module.exports = {
    a: 1,
    b: [1]
}
// bar.js
module.exports = {
    a: 2,
    b: [2],
}
// webpack-merge-test.js
const merge = require('webpack-merge');

const foo = require('./foo');
const bar = require('./bar');

console.log(merge(foo, bar));

输出:{ a: 2, b: [ 1, 2 ] }

默认关闭,因为开启后会增加运行时开销并增大包的大小。

那么开发环境开启与不开启的区别是什么呢? 在我的项目中,使用了iView,main.js中引入了iview.css,import 'iview/dist/styles/iview.css';。 cssSourceMap开启后,控制台中会把来自iview.css的样式也放出来,关闭后就只会放单文件组件的sm。

yunlzhang commented 3 years ago

ExtractTextPlugin是抽离css的吧

FrankKai commented 3 years ago

ExtractTextPlugin是抽离css的吧

是的,2年前的理解有误。 已经改过来了