minify: 'terser',的作用
时间: 2023-08-06 12:13:27 浏览: 62
"minify: 'terser'" 是指使用 Terser 压缩 JavaScript 代码。Terser 是一个 JavaScript 压缩工具,它可以将 JavaScript 代码压缩成更小、更高效的代码,从而提高网站的加载速度和性能。
Terser 可以消除代码中的空格、注释、多余的代码和变量名,并将长的变量名替换成短的变量名,这样可以减小代码的体积。同时,Terser 还可以对代码进行混淆,使得代码更难以被反编译和理解,从而增加代码的安全性。
相关问题
build.minify
build.minify是vite项目中的一个配置选项,用于指定项目在打包时使用的代码压缩工具。默认情况下,vite使用esbuild进行代码压缩,但是也可以选择使用Terser进行压缩。如果想要使用Terser进行压缩,则需要在vite.config.js文件中的build配置中设置minify为'terser',如下所示:
```javascript
// 使用Terser进行代码压缩
build: {
minify: 'terser',
// 其他配置项
}
```
如果不设置minify或者设置为其他值,则默认使用esbuild进行代码压缩。如果在使用Terser进行代码压缩时出现错误,可以根据错误提示设置build.minify为"terser",如下所示:
```javascript
// 设置build.minify为"terser"
build: {
minify: 'terser',
terserOptions: {
// 其他Terser配置项
},
// 其他配置项
}
```
import { createVitePlugins } from './build/vite/plugins'; import { initProxy } from './build/vite/proxy'; import { resolve } from 'path'; import { ConfigEnv, loadEnv, UserConfig } from 'vite'; import { wrapperEnv } from './build/utils'; const pathResolve = (dir: string) => { return resolve(process.cwd(), '.', dir); }; // https://vitejs.dev/config/ export default function ({ command, mode }: ConfigEnv): UserConfig { const isProduction = command === 'build'; const root = process.cwd(); const env = loadEnv(mode, root); const viteEnv = wrapperEnv(env); return { root, base:'./', resolve: { alias: [ { find: 'vue-i18n', replacement: 'vue-i18n/dist/vue-i18n.cjs.js', }, // /@/xxxx => src/xxxx { find: /\/@\//, replacement: pathResolve('src') + '/', }, // /#/xxxx => types/xxxx { find: /\/#\//, replacement: pathResolve('types') + '/', }, ], }, server: { host: true, hmr: true, proxy: initProxy(), }, plugins: createVitePlugins(viteEnv, isProduction), build: { assetsDir:'static', minify: 'terser', terserOptions: { compress: { //生产环境时移除console drop_console: true, drop_debugger: true, }, }, }, css: { preprocessorOptions: { scss: { // 配置 nutui 全局 scss 变量 additionalData: `@import "/@/styles/variables.scss";@import '/@/styles/mixin.scss';`, }, }, }, }; }在这段配置里,我要加入vuesetupextend这个插件,代码如何修改
要使用vuesetupextend插件,你需要先安装它。可以通过以下命令进行安装:
```
npm install --save-dev vuesetupextend
```
然后,在你的vite配置文件中,可以通过以下方式进行使用:
```
import { createVitePlugins } from './build/vite/plugins';
import { initProxy } from './build/vite/proxy';
import { resolve } from 'path';
import { ConfigEnv, loadEnv, UserConfig } from 'vite';
import { wrapperEnv } from './build/utils';
import vueSetupExtend from 'vuesetupextend';
const pathResolve = (dir: string) => {
return resolve(process.cwd(), '.', dir);
};
// https://vitejs.dev/config/
export default function ({ command, mode }: ConfigEnv): UserConfig {
const isProduction = command === 'build';
const root = process.cwd();
const env = loadEnv(mode, root);
const viteEnv = wrapperEnv(env);
return {
root,
base:'./',
resolve: {
alias: [
{
find: 'vue-i18n',
replacement: 'vue-i18n/dist/vue-i18n.cjs.js',
},
// /@/xxxx => src/xxxx
{
find: /\/@\//,
replacement: pathResolve('src') + '/',
},
// /#/xxxx => types/xxxx
{
find: /\/#\//,
replacement: pathResolve('types') + '/',
},
],
},
server: {
host: true,
hmr: true,
proxy: initProxy(),
},
plugins: [
vueSetupExtend(),
...createVitePlugins(viteEnv, isProduction),
],
build: {
assetsDir:'static',
minify: 'terser',
terserOptions: {
compress: {
//生产环境时移除console
drop_console: true,
drop_debugger: true,
},
},
},
css: {
preprocessorOptions: {
scss: {
// 配置 nutui 全局 scss 变量
additionalData: `@import "/@/styles/variables.scss";@import '/@/styles/mixin.scss';`,
},
},
},
};
}
```
需要注意的是,我们将vueSetupExtend插件放在了其他插件之前,这是因为它需要在其他插件之前进行处理。