sideEffects配置
时间: 2023-08-04 17:03:06 浏览: 43
sideEffects配置是用于指定模块是否会产生副作用(side effects)的配置项。副作用是指在模块执行过程中可能会对环境产生的一些影响,例如修改全局变量、发送网络请求、修改文件等。
在一些打包工具(如Webpack)中,可以使用sideEffects配置来优化构建过程。通过配置哪些模块不会产生副作用,打包工具可以在构建过程中更好地优化代码,去除无用的代码,减小打包体积。
sideEffects配置一般是在项目的配置文件中进行设置,可以是一个数组或者一个正则表达式。如果一个模块被设置为副作用为false,则表示该模块不会产生副作用,可以被打包工具优化掉。如果一个模块被设置为副作用为true,则表示该模块可能会产生副作用,不会被优化。
需要注意的是,对于一些常见的模块(如lodash、moment等),它们通常会被认为没有副作用,因此在打包工具中会默认将其视为没有副作用。但是如果你自己编写的模块可能会产生副作用,就需要显式地进行配置。
例如,在Webpack中可以这样配置sideEffects:
```javascript
module.exports = {
// ...
optimization: {
sideEffects: ['*.css', '*.less'],
},
};
```
上述配置表示所有以.css和.less为后缀的模块都不会产生副作用,可以被优化掉。
相关问题
vscode配置uniapp
1. 安装插件
打开 VS Code,按下快捷键 `Ctrl + Shift + X` 或者点击侧边栏中的插件按钮,搜索 uniapp 并安装。
2. 配置自动补全
打开 VS Code 的设置,搜索 `emmet`,找到 `Emmet: Include Languages`,点击 `Edit in settings.json`,在打开的文件中添加以下配置:
```
"emmet.includeLanguages": {
"vue-html": "html",
"vue": "html",
"wxml": "html",
"uniapp": "html"
}
```
3. 配置 eslint
在 VS Code 中安装 eslint 插件,并在项目根目录下创建 `.eslintrc.js` 配置文件,可以使用以下配置:
```
module.exports = {
root: true,
env: {
node: true,
},
extends: [
'plugin:vue/essential',
'eslint:recommended'
],
parserOptions: {
parser: 'babel-eslint',
ecmaVersion: 2020,
},
rules: {
'no-console': 'off',
'no-debugger': 'off',
'no-unused-vars': 'off',
'vue/no-unused-vars': 'off',
'vue/no-side-effects-in-computed-properties': 'off',
'vue/no-unused-components': 'off',
'vue/no-parsing-error': 'off',
},
}
```
4. 配置 prettier
在 VS Code 中安装 prettier 插件,并在项目根目录下创建 `.prettierrc` 文件,可以使用以下配置:
```
{
"printWidth": 120,
"tabWidth": 2,
"useTabs": false,
"semi": false,
"singleQuote": true,
"trailingComma": "es5",
"bracketSpacing": true,
"jsxBracketSameLine": false,
"arrowParens": "avoid"
}
```
5. 配置样式
在 VS Code 中安装 Material Icon Theme 插件,并在设置中搜索 `Icons: Associations`,在打开的文件中添加以下配置:
```
{
"fileExtensions": {
"vue": "vue",
"wxml": "html",
"wxss": "css",
"scss": "css",
"sass": "css",
"less": "css",
"stylus": "css",
"js": "javascript",
"ts": "typescript",
"jsx": "react",
"tsx": "react",
"json": "json",
"md": "markdown",
"html": "html",
"uniapp": "vue",
"wxss": "css",
"wxs": "javascript"
},
"fileNames": {
".eslintrc.js": "eslint",
"tsconfig.json": "typescript"
}
}
```
6. 配置快捷键
在 VS Code 中打开设置,搜索 `Keyboard Shortcuts`,找到 `Open Keyboard Shortcuts(JSON)`,在打开的文件中添加以下配置:
```
[
{
"key": "ctrl+shift+l",
"command": "editor.action.transformToLowercase",
"when": "editorTextFocus"
},
{
"key": "ctrl+shift+u",
"command": "editor.action.transformToUppercase",
"when": "editorTextFocus"
},
{
"key": "ctrl+shift+i",
"command": "editor.action.formatDocument",
"when": "editorTextFocus"
},
{
"key": "ctrl+shift+s",
"command": "editor.action.organizeImports",
"when": "editorTextFocus && !editorReadonly"
},
{
"key": "ctrl+shift+c",
"command": "workbench.action.terminal.toggleTerminal"
}
]
```
以上就是配置 uniapp 开发环境的方法。
使用webpack4配置tree-shaking
好的,以下是使用Webpack 4配置tree-shaking的步骤:
1. 确保你的代码中使用了ES6模块。只有ES6模块才支持tree-shaking。
2. 在webpack配置文件中,开启production模式。
```javascript
mode: "production"
```
3. 在配置文件中,开启optimization选项,并设置usedExports为true。
```javascript
optimization: {
usedExports: true
}
```
4. 在package.json文件中,设置sideEffects为false。这个选项告诉Webpack哪些文件可以进行tree-shaking。
```javascript
"sideEffects": false
```
如果你的代码中有一些副作用,比如对全局变量的操作,可以将sideEffects设置为一个数组,指定哪些文件有副作用。
```javascript
"sideEffects": [
"*.css",
"*.scss"
]
```
这样就完成了Webpack 4的tree-shaking配置。在打包时,Webpack会自动删除没有使用的代码,减小打包后的文件体积。