snowpack
[[toc]]
github 18k
放弃 webpack 使用 snowpack 构建 vue2
vue不建议使用snowpack ,直接使用vite
const CompressionWebpackPlugin = require("compression-webpack-plugin"); const ProgressBarPlugin = require("progress-bar-webpack-plugin");
  module.exports = {   mode: "development",   mount: {     public: "/",     src: "/_build_",   },   plugins: [     [       "@snowpack/plugin-webpack",       {         manifest: true,         extendConfig: (config) => {           config.plugins.push(                          new ProgressBarPlugin(),             new CompressionWebpackPlugin({               filename: "[path].gz[query]",                algorithm: "gzip",                test: /\.(js|css|html|svg)$/,                threshold: 10240,                minRatio: 0.8,                deleteOriginalAssets: false,              }),           );           console.log(1212, config);           return config;         },       },     ],          "snowpack-vue2-plugin",     "@snowpack/plugin-sass",     "@snowpack/plugin-dotenv",    ],   devOptions: {     port: 9988,   },   env: {     ...process.env,      API_URL: "api.google.com",   },   alias: {      vue: "vue/dist/vue.esm.js",     src: "./src",     "@": "./src",     assets: "./src/assets",   }, };
  | 
 
打包后的文件格式
├── _build_ // 这里是开发使用  直接使用esm │   ├── app.vue.css │   ├── app.vue.css.proxy.js │   ├── app.vue.js │   ├── assets // 静态资源要使用import导入才能用 │   │   ├── css │   │   │   ├── base.css │   │   │   └── common.css │   │   └── images │   │       ├── logo.svg │   │       └── logo.svg.proxy.js  │   └── main.js ├── _snowpack // _snowpack 会识别当前引入的包,打包到一块 │   ├── env.js │   └── pkg │       ├── import-map.json │       └── vue │           └── dist │               └── vue.esm.js | // 下面是生产模式用的 ├── asset-manifest.json ├── asse─ asse打包ao├─ao─ asse─ asse打包ts │   └── logo-0bd12d7f66941cb709a7916ed3711b83.svg ├── css │   └── styles.54be0dbcaf3903e9ecf0.css ├── favicon.ico ├── index.html ├── js │   ├── main.c7209184f49f325aa215.js │   ├── styles.8c0579408b74c01eb83f.js │   └── webpack-runtime.0ec3dfa59e6510ed107b.js └── logo.svg
   | 
 
_ snowpack _ 文件夹里面包含的是snowpack脚手架自身包含的:其中env.js 是环境变量的配置文件,文件带hmr的项目热更新的配置文件。
_ dist _ 里面包含的页面应用到的js,css 等其他资源文件,就是app.vue里面的东西。
不足
参考文档
文档 需翻墙
hmr 暂时没找到兼容vue2的 hmr