diff --git a/docs/image-rename-map.json b/docs/image-rename-map.json index 1d8c1df..9def7fa 100644 --- a/docs/image-rename-map.json +++ b/docs/image-rename-map.json @@ -25,6 +25,7 @@ "ic_2.png": "ic-2.png", "ic_3.png": "ic-3.png", "logo_b.svg": "logo-b.svg", + "logo.png":"logo.png", "logo_icon.png": "logo-icon.png", "solution_ai_integration.svg": "solution-ai-integration.svg", "solution_app_delivery.svg": "solution-app-delivery.svg", diff --git a/npminstall-debug.log b/npminstall-debug.log deleted file mode 100644 index c2244bb..0000000 --- a/npminstall-debug.log +++ /dev/null @@ -1,214 +0,0 @@ -{ - root: 'D:\\项目\\official_network', - registry: 'https://registry.npmmirror.com', - pkgs: [ - { - name: '', - version: 'responsive-loader/sharp', - type: 'git', - alias: undefined, - arg: [Result] - } - ], - production: false, - cacheStrict: false, - cacheDir: 'C:\\Users\\97885\\.npminstall_tarball', - env: { - npm_config_registry: 'https://registry.npmmirror.com', - npm_config_argv: '{"remain":[],"cooked":["--fix-bug-versions","--china","--userconfig=C:\\\\Users\\\\97885\\\\.cnpmrc","--disturl=https://cdn.npmmirror.com/binaries/node","--registry=https://registry.npmmirror.com","responsive-loader/sharp"],"original":["--fix-bug-versions","--china","--userconfig=C:\\\\Users\\\\97885\\\\.cnpmrc","--disturl=https://cdn.npmmirror.com/binaries/node","--registry=https://registry.npmmirror.com","responsive-loader/sharp"]}', - npm_config_user_agent: 'npminstall/7.12.0 npm/? node/v20.19.0 win32 x64', - npm_config_cache: 'C:\\Users\\97885\\.npminstall_tarball', - NODE: 'C:\\nvm4w\\nodejs\\node.exe', - npm_node_execpath: 'C:\\nvm4w\\nodejs\\node.exe', - npm_execpath: 'C:\\Users\\97885\\AppData\\Local\\nvm\\v20.19.0\\node_modules\\cnpm\\node_modules\\npminstall\\bin\\install.js', - npm_config_userconfig: 'C:\\Users\\97885\\.cnpmrc', - npm_config_disturl: 'https://cdn.npmmirror.com/binaries/node', - npm_config_r: 'https://registry.npmmirror.com', - COREPACK_NPM_REGISTRY: 'https://registry.npmmirror.com', - EDGEDRIVER_CDNURL: 'https://npmmirror.com/mirrors/edgedriver', - NODEJS_ORG_MIRROR: 'https://cdn.npmmirror.com/binaries/node', - NVM_NODEJS_ORG_MIRROR: 'https://cdn.npmmirror.com/binaries/node', - PHANTOMJS_CDNURL: 'https://cdn.npmmirror.com/binaries/phantomjs', - CHROMEDRIVER_CDNURL: 'https://cdn.npmmirror.com/binaries/chromedriver', - OPERADRIVER_CDNURL: 'https://cdn.npmmirror.com/binaries/operadriver', - CYPRESS_DOWNLOAD_PATH_TEMPLATE: 'https://cdn.npmmirror.com/binaries/cypress/${version}/${platform}-${arch}/cypress.zip', - ELECTRON_MIRROR: 'https://cdn.npmmirror.com/binaries/electron/', - ELECTRON_BUILDER_BINARIES_MIRROR: 'https://cdn.npmmirror.com/binaries/electron-builder-binaries/', - SASS_BINARY_SITE: 'https://cdn.npmmirror.com/binaries/node-sass', - SWC_BINARY_SITE: 'https://cdn.npmmirror.com/binaries/node-swc', - NWJS_URLBASE: 'https://cdn.npmmirror.com/binaries/nwjs/v', - PUPPETEER_DOWNLOAD_HOST: 'https://cdn.npmmirror.com/binaries/chrome-for-testing', - PUPPETEER_DOWNLOAD_BASE_URL: 'https://cdn.npmmirror.com/binaries/chrome-for-testing', - PUPPETEER_CHROME_DOWNLOAD_BASE_URL: 'https://cdn.npmmirror.com/binaries/chrome-for-testing', - PUPPETEER_CHROME_HEADLESS_SHELL_DOWNLOAD_BASE_URL: 'https://cdn.npmmirror.com/binaries/chrome-for-testing', - PLAYWRIGHT_DOWNLOAD_HOST: 'https://cdn.npmmirror.com/binaries/playwright', - SENTRYCLI_CDNURL: 'https://cdn.npmmirror.com/binaries/sentry-cli', - SAUCECTL_INSTALL_BINARY_MIRROR: 'https://cdn.npmmirror.com/binaries/saucectl', - RE2_DOWNLOAD_MIRROR: 'https://cdn.npmmirror.com/binaries/node-re2', - RE2_DOWNLOAD_SKIP_PATH: 'true', - PRISMA_ENGINES_MIRROR: 'https://cdn.npmmirror.com/binaries/prisma', - npm_config_better_sqlite3_binary_host: 'https://cdn.npmmirror.com/binaries/better-sqlite3', - npm_config_keytar_binary_host: 'https://cdn.npmmirror.com/binaries/keytar', - npm_config_sharp_binary_host: 'https://cdn.npmmirror.com/binaries/sharp', - npm_config_sharp_libvips_binary_host: 'https://cdn.npmmirror.com/binaries/sharp-libvips', - npm_config_robotjs_binary_host: 'https://cdn.npmmirror.com/binaries/robotjs', - npm_config_gl_binary_host: 'https://cdn.npmmirror.com/binaries/gl', - npm_rootpath: 'D:\\项目\\official_network', - INIT_CWD: 'D:\\项目\\official_network' - }, - binaryMirrors: { - ENVS: { - COREPACK_NPM_REGISTRY: 'https://registry.npmmirror.com', - EDGEDRIVER_CDNURL: 'https://npmmirror.com/mirrors/edgedriver', - NODEJS_ORG_MIRROR: 'https://cdn.npmmirror.com/binaries/node', - NVM_NODEJS_ORG_MIRROR: 'https://cdn.npmmirror.com/binaries/node', - PHANTOMJS_CDNURL: 'https://cdn.npmmirror.com/binaries/phantomjs', - CHROMEDRIVER_CDNURL: 'https://cdn.npmmirror.com/binaries/chromedriver', - OPERADRIVER_CDNURL: 'https://cdn.npmmirror.com/binaries/operadriver', - CYPRESS_DOWNLOAD_PATH_TEMPLATE: 'https://cdn.npmmirror.com/binaries/cypress/${version}/${platform}-${arch}/cypress.zip', - ELECTRON_MIRROR: 'https://cdn.npmmirror.com/binaries/electron/', - ELECTRON_BUILDER_BINARIES_MIRROR: 'https://cdn.npmmirror.com/binaries/electron-builder-binaries/', - SASS_BINARY_SITE: 'https://cdn.npmmirror.com/binaries/node-sass', - SWC_BINARY_SITE: 'https://cdn.npmmirror.com/binaries/node-swc', - NWJS_URLBASE: 'https://cdn.npmmirror.com/binaries/nwjs/v', - PUPPETEER_DOWNLOAD_HOST: 'https://cdn.npmmirror.com/binaries/chrome-for-testing', - PUPPETEER_DOWNLOAD_BASE_URL: 'https://cdn.npmmirror.com/binaries/chrome-for-testing', - PUPPETEER_CHROME_DOWNLOAD_BASE_URL: 'https://cdn.npmmirror.com/binaries/chrome-for-testing', - PUPPETEER_CHROME_HEADLESS_SHELL_DOWNLOAD_BASE_URL: 'https://cdn.npmmirror.com/binaries/chrome-for-testing', - PLAYWRIGHT_DOWNLOAD_HOST: 'https://cdn.npmmirror.com/binaries/playwright', - SENTRYCLI_CDNURL: 'https://cdn.npmmirror.com/binaries/sentry-cli', - SAUCECTL_INSTALL_BINARY_MIRROR: 'https://cdn.npmmirror.com/binaries/saucectl', - RE2_DOWNLOAD_MIRROR: 'https://cdn.npmmirror.com/binaries/node-re2', - RE2_DOWNLOAD_SKIP_PATH: 'true', - PRISMA_ENGINES_MIRROR: 'https://cdn.npmmirror.com/binaries/prisma', - npm_config_better_sqlite3_binary_host: 'https://cdn.npmmirror.com/binaries/better-sqlite3', - npm_config_keytar_binary_host: 'https://cdn.npmmirror.com/binaries/keytar', - npm_config_sharp_binary_host: 'https://cdn.npmmirror.com/binaries/sharp', - npm_config_sharp_libvips_binary_host: 'https://cdn.npmmirror.com/binaries/sharp-libvips', - npm_config_robotjs_binary_host: 'https://cdn.npmmirror.com/binaries/robotjs', - npm_config_gl_binary_host: 'https://cdn.npmmirror.com/binaries/gl' - }, - '@ali/s2': { host: 'https://cdn.npmmirror.com/binaries/looksgood-s2' }, - sharp: { replaceHostFiles: [Array], replaceHostMap: [Object] }, - '@tensorflow/tfjs-node': { - replaceHostFiles: [Array], - replaceHostRegExpMap: [Object], - replaceHostMap: [Object] - }, - cypress: { - host: 'https://cdn.npmmirror.com/binaries/cypress', - newPlatforms: [Object] - }, - 'utf-8-validate': { - host: 'https://cdn.npmmirror.com/binaries/utf-8-validate/v{version}' - }, - xprofiler: { - remote_path: './xprofiler/v{version}/', - host: 'https://cdn.npmmirror.com/binaries' - }, - leveldown: { host: 'https://cdn.npmmirror.com/binaries/leveldown/v{version}' }, - couchbase: { host: 'https://cdn.npmmirror.com/binaries/couchbase/v{version}' }, - gl: { host: 'https://cdn.npmmirror.com/binaries/gl/v{version}' }, - sqlite3: { - host: 'https://cdn.npmmirror.com/binaries/sqlite3', - remote_path: 'v{version}' - }, - '@journeyapps/sqlcipher': { host: 'https://cdn.npmmirror.com/binaries' }, - grpc: { - host: 'https://cdn.npmmirror.com/binaries', - remote_path: '{name}/v{version}' - }, - 'grpc-tools': { host: 'https://cdn.npmmirror.com/binaries' }, - wrtc: { - host: 'https://cdn.npmmirror.com/binaries', - remote_path: '{name}/v{version}' - }, - fsevents: { host: 'https://cdn.npmmirror.com/binaries/fsevents' }, - nodejieba: { host: 'https://cdn.npmmirror.com/binaries/nodejieba' }, - canvas: { - host: 'https://cdn.npmmirror.com/binaries/canvas', - remote_path: 'v{version}' - }, - 'skia-canvas': { host: 'https://cdn.npmmirror.com/binaries/skia-canvas' }, - 'flow-bin': { - replaceHost: 'https://github.com/facebook/flow/releases/download/v', - host: 'https://cdn.npmmirror.com/binaries/flow/v' - }, - 'jpegtran-bin': { - replaceHost: [Array], - host: 'https://cdn.npmmirror.com/binaries/jpegtran-bin' - }, - 'cwebp-bin': { - replaceHost: [Array], - host: 'https://cdn.npmmirror.com/binaries/cwebp-bin' - }, - 'zopflipng-bin': { - replaceHost: [Array], - host: 'https://cdn.npmmirror.com/binaries/zopflipng-bin' - }, - 'optipng-bin': { - replaceHost: [Array], - host: 'https://cdn.npmmirror.com/binaries/optipng-bin' - }, - mozjpeg: { - replaceHost: [Array], - host: 'https://cdn.npmmirror.com/binaries/mozjpeg-bin' - }, - gifsicle: { - replaceHost: [Array], - host: 'https://cdn.npmmirror.com/binaries/gifsicle-bin' - }, - 'pngquant-bin': { - replaceHost: [Array], - host: 'https://cdn.npmmirror.com/binaries/pngquant-bin', - replaceHostMap: [Object] - }, - 'pngcrush-bin': { - replaceHost: [Array], - host: 'https://cdn.npmmirror.com/binaries/pngcrush-bin' - }, - 'jpeg-recompress-bin': { - replaceHost: [Array], - host: 'https://cdn.npmmirror.com/binaries/jpeg-recompress-bin' - }, - 'advpng-bin': { - replaceHost: [Array], - host: 'https://cdn.npmmirror.com/binaries/advpng-bin' - }, - 'pngout-bin': { - replaceHost: [Array], - host: 'https://cdn.npmmirror.com/binaries/pngout-bin' - }, - 'jpegoptim-bin': { - replaceHost: [Array], - host: 'https://cdn.npmmirror.com/binaries/jpegoptim-bin' - }, - argon2: { host: 'https://cdn.npmmirror.com/binaries/argon2' }, - 'ali-zeromq': { host: 'https://cdn.npmmirror.com/binaries/ali-zeromq' }, - 'ali-usb_ctl': { host: 'https://cdn.npmmirror.com/binaries/ali-usb_ctl' }, - 'gdal-async': { host: 'https://cdn.npmmirror.com/binaries/node-gdal-async' }, - 'libpg-query': { host: 'https://cdn.npmmirror.com/binaries' } - }, - forbiddenLicenses: null, - flatten: false, - proxy: undefined, - prune: false, - disableFallbackStore: false, - workspacesMap: Map(0) {}, - enableWorkspace: false, - workspaceRoot: 'D:\\项目\\official_network', - isWorkspaceRoot: true, - isWorkspacePackage: false, - offline: false, - strictSSL: true, - ignoreScripts: false, - foregroundScripts: false, - ignoreOptionalDependencies: false, - detail: false, - forceLinkLatest: false, - trace: false, - engineStrict: false, - registryOnly: false, - client: false, - autoFixVersion: [Function: autoFixVersion] -} \ No newline at end of file diff --git a/src/utils/image.js b/src/utils/image.js index def2118..db514a1 100644 --- a/src/utils/image.js +++ b/src/utils/image.js @@ -27,9 +27,9 @@ export const img = (name) => { try { return appendVersion(localImages(`./${cleanName}`)) } catch (e) { - return appendVersion(`/${cleanName}`) + return appendVersion(`/images/${cleanName}`) } } - return appendVersion(`${IMAGE_BASE}/${cleanName}`) + return appendVersion(`${IMAGE_BASE}/images/${cleanName}`) } diff --git a/vue.config.js b/vue.config.js index 0adb0b4..93ac742 100644 --- a/vue.config.js +++ b/vue.config.js @@ -1,4 +1,5 @@ const path = require("path"); +const CopyWebpackPlugin = require('copy-webpack-plugin'); const resolve = (dir) => { return path.join(__dirname, dir); @@ -20,7 +21,21 @@ module.exports = { config.resolve.alias.set("@", resolve("src")); config.resolve.alias.set("_c", resolve("src/components")); - // SVG 文件处理 + // 统一图片产物目录:dist/images(保留子目录,不带 hash) + // 说明:Vue CLI 默认会把被打包的图片输出到 dist/img(带 hash), + // 这里覆盖为与 CopyWebpackPlugin 一致的 images 目录,避免出现 dist/img。 + config.module.rule('images') + .test(/\.(png|jpe?g|gif|webp)(\?.*)?$/) + .use('url-loader') + .loader('url-loader') + .options({ + limit: 10000, + esModule: false, + outputPath: 'images', + context: resolve('src/assets/img'), + name: '[path][name].[ext]' + }); + config.module.rule('svg') .test(/\.svg$/) .use('file-loader') @@ -29,23 +44,17 @@ module.exports = { context: resolve('src/assets/img'), name: 'images/[path][name].[ext]' }); - - // 普通图片处理(排除 SVG) - config.module.rule('images') - .test(/\.(png|jpe?g|gif)(\?.*)?$/) - .use('url-loader') - .loader('url-loader') - .options({ - limit: 10000, - esModule: false, - outputPath: "images/", - context: resolve('src/assets/img'), - name: '[path][name].[ext]' - }); - }, configureWebpack: { + plugins: [ + new CopyWebpackPlugin([ + { + from: resolve('src/assets/img'), + to: 'images' + } + ]) + ], output: { filename: "js/[hash].js", }