volantis-x / hexo-theme-volantis

A Wonderful Theme for Hexo.
https://volantis.js.org
MIT License
2.05k stars 600 forks source link

百度分析与谷歌分析无法生效 & gulp压缩失效 &修改友链样式出现报错 #622

Closed Aliroe closed 3 years ago

Aliroe commented 3 years ago

自检报告

第一步:查阅文档

第二步:测试原生代码

打开终端,执行下面的命令:

git clone https://github.com/volantis-x/demo.git && cd demo && npm i && hexo s

结果是否能够正常运行?

测试结果是:A or B

问题描述

百度分析与谷歌分析无法生效 & gulp压缩失效 &修改友链样式出现报错

以下是友链修改成traditional时,本地部署与在线部署都会出现以下报错

Unhandled rejection TypeError: O:\Desktop\Git-project\hexoblog\node_modules\hexo-theme-volantis\layout\friends.ejs:50
    48|                       <% if (item.keywords) { %>
    49|                         <div class='friend-tags-wrapper'>
    50|                         <% (item.keywords||[]).forEach(function(keyword){ %>
    51|                           <p class="tags"><i class="fas fa-hashtag fa-fw" aria-hidden="true"></i><%= keyword %></p>
    52|                         <% }) %>
    53|                         </div>

(item.keywords || []).forEach is not a function
    at eval (O:\Desktop\Git-project\hexoblog\node_modules\hexo-theme-volantis\layout\friends.ejs:110:28)
    at Array.forEach (<anonymous>)
    at eval (O:\Desktop\Git-project\hexoblog\node_modules\hexo-theme-volantis\layout\friends.ejs:86:26)
    at Array.forEach (<anonymous>)
    at eval (O:\Desktop\Git-project\hexoblog\node_modules\hexo-theme-volantis\layout\friends.ejs:32:26)
    at friends (O:\Desktop\Git-project\hexoblog\node_modules\ejs\lib\ejs.js:682:17)
    at _View._compiled (O:\Desktop\Git-project\hexoblog\node_modules\hexo\lib\theme\view.js:136:50)
    at _View.render (O:\Desktop\Git-project\hexoblog\node_modules\hexo\lib\theme\view.js:39:17)
    at O:\Desktop\Git-project\hexoblog\node_modules\hexo\lib\hexo\index.js:64:21
    at tryCatcher (O:\Desktop\Git-project\hexoblog\node_modules\bluebird\js\release\util.js:16:23)
    at O:\Desktop\Git-project\hexoblog\node_modules\bluebird\js\release\method.js:15:34
    at RouteStream._read (O:\Desktop\Git-project\hexoblog\node_modules\hexo\lib\hexo\router.js:47:5)
    at RouteStream.Readable.read (_stream_readable.js:491:10)
    at resume_ (_stream_readable.js:976:12)
    at processTicksAndRejections (internal/process/task_queues.js:80:21)

gulp执行的时候代码压缩本地也无效

环境信息

主题版本

您当前使用的版本为:4.3.1 Hexo版本:5.4.0

复现地址

截图

相关截图 ![image](https://user-images.githubusercontent.com/40637160/115689604-d0e0a980-a38e-11eb-9f99-e8be44d2490a.png)

浏览器、操作系统

Chrome 稳定版 版本 90.0.4430.85(正式版本) (64 位) Windows10专业版 20H2 19042.928

配置文件

配置文件 #### 站点配置文件 在这里粘贴 `blog/_config.yml` 中修改过的部分 ```yml # Site title: Zer0's Blog subtitle: '' description: (Zer0's Blog) 日常摸鱼记录 水文章的过程 keywords: 'Zer0,hexo,Zer0,ctf,CTF' author: Zer0 language: zh-CN timezone: 'Asia/Shanghai' ``` #### 主题配置文件 在这里粘贴 `themes/volantis/_config.yml` 中修改过的部分 ```yml #数据分析 baidu_analytics_key: 612246419b5b9ddcaf936fdcf7e19c21 #百度统计的key google_analytics_key: G-9KPKB15P85 #Google Analytics Key ``` #### node.js & npm 在这里粘贴 `node -v && npm -v` 输出的信息 ``` $ node -v v12.13.1 ``` #### package.json 在这里粘贴 `npm ls --depth 0` 输出的信息 ``` $ npm ls --depth 0 hexo-site@0.0.0 O:\Desktop\Git-project\hexoblog +-- gulp@4.0.2 +-- gulp-html-minifier-terser@6.0.1 +-- gulp-htmlclean@2.7.22 +-- gulp-htmlmin@5.0.1 +-- gulp-imagemin@7.1.0 +-- gulp-minify-css@1.2.4 +-- gulp-terser@2.0.1 +-- gulp-uglify@3.0.2 +-- hexo@5.4.0 +-- hexo-generator-archive@1.0.0 +-- hexo-generator-category@1.0.0 +-- hexo-generator-feed@3.0.0 +-- hexo-generator-index@2.0.0 +-- hexo-generator-json-content@4.2.3 +-- hexo-generator-search@2.4.1 +-- hexo-generator-tag@1.0.0 +-- hexo-renderer-ejs@1.0.0 +-- hexo-renderer-marked@3.3.0 +-- hexo-renderer-stylus@2.0.1 +-- hexo-server@2.0.0 +-- hexo-theme-landscape@0.0.3 +-- hexo-theme-volantis@4.3.1 +-- hexo-wordcount@6.0.1 `-- install@0.13.0 ```
inkss commented 3 years ago

看起来像是友链的 keys 列出了问题,能提供下友链的配置内容吗?

Aliroe commented 3 years ago

看起来像是友链的 keys 列出了问题,能提供下友链的配置内容吗?

看起来像是友链的 keys 列出了问题,能提供下友链的配置内容吗?

Aliroe commented 3 years ago

看起来像是友链的 keys 列出了问题,能提供下友链的配置内容吗?

还有一个是百度分析和谷歌分析的代码是生效不了的

inkss commented 3 years ago

keywords 需要数组形式的数据,也就是:

 keywords:
  - key1
  - key2

如果不需要此字段,留空或不保留即可。


百度和谷歌的密钥需要写进 blog/_config.yml 中。

V3 的文档里说明了具体的写入文件:百度统计

Aliroe commented 3 years ago

keywords 需要数组形式的数据,也就是:

 keywords:
  - key1
  - key2

如果不需要此字段,留空或不保留即可。

百度和谷歌的密钥需要写进 blog/_config.yml 中。

V3 的文档里说明了具体的写入文件:百度统计

gulp压缩是因为什么呢

Aliroe commented 3 years ago
$ gulp
[23:03:40] Using gulpfile O:\Desktop\Git-project\hexoblog\gulpfile.js
[23:03:40] Starting 'default'...
[23:03:40] Starting 'one'...
[23:03:40] Starting 'minify_html'...
[23:03:40] Starting 'minify_css'...
[23:03:40] Starting 'minify_js'...
[23:03:40] Finished 'minify_css' after 43 ms
[23:03:40] Finished 'minify_js' after 46 ms
[23:03:40] Finished 'minify_html' after 50 ms
[23:03:40] Finished 'one' after 54 ms
[23:03:40] Finished 'default' after 60 ms

gulp运行后是这样的输出,然后实际上网站本地运行是没有压缩的

inkss commented 3 years ago

hexo clean && hexo g && gulp && hexo d 这样子部署的吗?

Aliroe commented 3 years ago

hexo clean && hexo g && gulp && hexo d 这样子部署的吗? 我用的是vercel部署和GitHub托管代码

inkss commented 3 years ago

本地执行下前这部分看看结果:hexo clean && hexo g && gulp

如果不行,提供下 gulpfile.js 文件。

如果可以,提供下自动部署文件。

Aliroe commented 3 years ago
var gulp = require('gulp');
var minifycss = require('gulp-minify-css');
var htmlmin = require('gulp-html-minifier-terser');
var htmlclean = require('gulp-htmlclean');
var terser = require('gulp-terser');

// 压缩css文件
const minify_css = () => (
    gulp.src(['./public/**/*.css'])
        .pipe(minifycss())
        .pipe(gulp.dest('./public'))
);

// 压缩html文件
const minify_html = () => (
    gulp.src(['./public/**/*.html','!./public/{lib,lib/**}'])
        .pipe(htmlclean())
        .pipe(htmlmin({
            removeComments: true,
            minifyJS: true,
            minifyCSS: true,
            minifyURLs: true,
        }))
        .pipe(gulp.dest('./public'))
)

// 压缩js文件
const minify_js = () => (
    gulp.src(['./public/**/*.js', '!./public/**/*.min.js','!./public/{lib,lib/**}'])
        .pipe(terser())
        .pipe(gulp.dest('./public'))
)

module.exports = {
    minify_html: minify_html,
    minify_css: minify_css,
    minify_js: minify_js
};
gulp.task('one', gulp.parallel(
    minify_html,
    minify_css,
    minify_js
))

gulp.task('default', gulp.series('one'));
inkss commented 3 years ago

然后实际上网站本地运行是没有压缩的

是在什么状态下观察的什么?

Aliroe commented 3 years ago

然后实际上网站本地运行是没有压缩的

是在什么状态下观察的什么?

用Chrome的f12看html代码格式

inkss commented 3 years ago

gulp 里可没有写实时监听,它压缩的是 public 内的文件。

Aliroe commented 3 years ago

gulp 里可没有写实时监听,它压缩的是 public 内的文件。

具体怎么写呢(小声问