theme-next / hexo-theme-next

Elegant and powerful theme for Hexo.
https://theme-next.org
Other
8.17k stars 2.05k forks source link

hexo s 本地预览无主题样式 #1693

Closed PDPENG closed 2 years ago

PDPENG commented 2 years ago

Please follow this Issue template to provide relevant information, such as source code repositories, blog links, and screenshots, which will help us investigate. 请按照此 Issue 模版提供相关信息,例如源码仓库、博客链接和屏幕截图,这将有助于我们进行调查。

Issue Checklist


Expected behavior

执行 hexo s 后能在 http://localhost:4000/ 正确预览网页效果

Actual behavior

网页目前运行正常,但在本地无法预览。但在这两者之间未做过任何改动,正常发布后,本地出现了问题,截图如下:

Steps to reproduce the behavior

  1. hexo clean
PS D:\ProgrammeDisk\web-coder-jason\hexo-jason-blog> hexo clean
INFO  Validating config
INFO  ==================================
  ███╗   ██╗███████╗██╗  ██╗████████╗
  ████╗  ██║██╔════╝╚██╗██╔╝╚══██╔══╝
  ██╔██╗ ██║█████╗   ╚███╔╝    ██║
  ██║╚██╗██║██╔══╝   ██╔██╗    ██║
  ██║ ╚████║███████╗██╔╝ ██╗   ██║
  ╚═╝  ╚═══╝╚══════╝╚═╝  ╚═╝   ╚═╝
========================================
NexT version 8.9.0
Documentation: https://theme-next.js.org
========================================
INFO  Deleted database.
INFO  Deleted public folder.
  1. hexo g

此处无异常

  1. hexo s

    PS D:\ProgrammeDisk\web-coder-jason\hexo-jason-blog> hexo s
    INFO  Validating config
    INFO  ==================================
    ███╗   ██╗███████╗██╗  ██╗████████╗
    ████╗  ██║██╔════╝╚██╗██╔╝╚══██╔══╝
    ██╔██╗ ██║█████╗   ╚███╔╝    ██║
    ██║╚██╗██║██╔══╝   ██╔██╗    ██║
    ██║ ╚████║███████╗██╔╝ ██╗   ██║
    ╚═╝  ╚═══╝╚══════╝╚═╝  ╚═╝   ╚═╝
    ========================================
    NexT version 8.9.0
    Documentation: https://theme-next.js.org
    ========================================
    INFO  Start processing
    INFO  ---- START COPYING TAG CLOUD FILES ----
    INFO  ---- END COPYING TAG CLOUD FILES ----
    INFO  Hexo is running at http://localhost:4000/ . Press Ctrl+C to stop.
    ERROR {
    err: [OperationalError: D:/ProgrammeDisk/web-coder-jason/hexo-jason-blog/node_modules/stylus/lib/functions/index.styl:14:5
     10| // require a color
     11|
     12| require-color(color)
     13|   unless color is a 'color'
     14|     error('RGB or HSL value expected, got a ' + -string(color))
    -----------^
     15|
     16| // require a unit
     17|
    
    RGB or HSL value expected, got a null
    ] {
    cause: [Error: D:/ProgrammeDisk/web-coder-jason/hexo-jason-blog/node_modules/stylus/lib/functions/index.styl:14:5
       10| // require a color
       11|
       12| require-color(color)
       13|   unless color is a 'color'
       14|     error('RGB or HSL value expected, got a ' + -string(color))
    -----------^
       15|
       16| // require a unit
       17|
    
    RGB or HSL value expected, got a null
    ] {
      fromStylus: true,
      lineno: 14,
      column: 5,
      filename: 'D:/ProgrammeDisk/web-coder-jason/hexo-jason-blog/node_modules/stylus/lib/functions/index.styl',
      stylusStack: '',
      input: 'called-from = ()\n' +
        '\n' +
        'vendors = moz webkit o ms official\n' +
        '\n' +
        '// stringify the given arg\n' +
        '\n' +
        '-string(arg)\n' +
        "  type(arg) + ' ' + arg\n" +
        '\n' +
        '// require a color\n' +
        '\n' +
        'require-color(color)\n' +
        "  unless color is a 'color'\n" +
        "    error('RGB or HSL value expected, got a ' + -string(color))\n" +
        '\n' +
        '// require a unit\n' +
        '\n' +
        'require-unit(n)\n' +
        "  unless n is a 'unit'\n" +
        "    error('unit expected, got a ' + -string(n))\n" +
        '\n' +
        '// require a string\n' +
        '\n' +
        'require-string(str)\n' +
        "  unless str is a 'string' or str is a 'ident'\n" +
        "    error('string expected, got a ' + -string(str))\n" +
        '\n' +
        '// Math functions\n' +
        '\n' +
        "abs(n) { math(n, 'abs') }\n" +
        'min(a, b) { a < b ? a : b }\n' +
        'max(a, b) { a > b ? a : b }\n' +
        '\n' +
        '// Trigonometrics\n' +
        "PI = -math-prop('PI')\n" +
        '\n' +
        'radians-to-degrees(angle)\n' +
        '  angle * (180 / PI)\n' +
        '\n' +
        'degrees-to-radians(angle)\n' +
        '  angle * (PI / 180)\n' +
        '\n' +
        'sin(n)\n' +
        "  n = unit(n) == 'deg' ? degrees-to-radians(unit(n, '')) : unit(n, '')\n" +
        "  round(math(n, 'sin'), 9)\n" +
        '\n' +
        'cos(n)\n' +
        "  n = unit(n) == 'deg' ? degrees-to-radians(unit(n, '')) : unit(n, '')\n" +
        "  round(math(n, 'cos'), 9)\n" +
        '\n' +
        '// Rounding Math functions\n' +
        '\n' +
        'ceil(n, precision = 0)\n' +
        '  multiplier = 10 ** precision\n' +
        "  math(n * multiplier, 'ceil') / multiplier\n" +
        '\n' +
        'floor(n, precision = 0)\n' +
        '  multiplier = 10 ** precision\n' +
        "  math(n * multiplier, 'floor') / multiplier\n" +
        '\n' +
        'round(n, precision = 0)\n' +
        '  multiplier = 10 ** precision\n' +
        "  math(n * multiplier, 'round') / multiplier\n" +
        '\n' +
        '// return the sum of the given numbers\n' +
        '\n' +
        'sum(nums)\n' +
        '  sum = 0\n' +
        '  sum += n for n in nums\n' +
        '\n' +
        '// return the average of the given numbers\n' +
        '\n' +
        'avg(nums)\n' +
        '  sum(nums) / length(nums)\n' +
        '\n' +
        '// return a unitless number, or pass through\n' +
        '\n' +
        'remove-unit(n)\n' +
        '  if typeof(n) is "unit"\n' +
        '    unit(n, "")\n' +
        '  else\n' +
        '    n\n' +
        '\n' +
        '// convert a percent to a decimal, or pass through\n' +
        '\n' +
        'percent-to-decimal(n)\n' +
        '  if unit(n) is "%"\n' +
        '    remove-unit(n) / 100\n' +
        '  else\n' +
        '    n\n' +
        '\n' +
        '// check if n is an odd number\n' +
        '\n' +
        'odd(n)\n' +
        '  1 == n % 2\n' +
        '\n' +
        '// check if n is an even number\n' +
        '\n' +
        'even(n)\n' +
        '  0 == n % 2\n' +
        '\n' +
        '// check if color is light\n' +
        '\n' +
        'light(color)\n' +
        '  lightness(color) >= 50%\n' +
        '\n' +
        '// check if color is dark\n' +
        '\n' +
        'dark(color)\n' +
        '  lightness(color) < 50%\n' +
        '\n' +
        '// desaturate color by amount\n' +
        '\n' +
        'desaturate(color, amount)\n' +
        "  adjust(color, 'saturation', - amount)\n" +
        '\n' +
        '// saturate color by amount\n' +
        '\n' +
        "saturate(color = '', amount = 100%)\n" +
        "  if color is a 'color'\n" +
        "    adjust(color, 'saturation', amount)\n" +
        '  else\n' +
        '    unquote( "saturate(" + color + ")" )\n' +
        '\n' +
        '// darken by the given amount\n' +
        '\n' +
        'darken(color, amount)\n' +
        "  adjust(color, 'lightness', - amount)\n" +
        '\n' +
        '// lighten by the given amount\n' +
        '\n' +
        'lighten(color, amount)\n' +
        "  adjust(color, 'lightness', amount)\n" +
        '\n' +
        '// decrease opacity by amount\n' +
        '\n' +
        'fade-out(color, amount)\n' +
        '  color - rgba(black, percent-to-decimal(amount))\n' +
        '\n' +
        '// increase opacity by amount\n' +
        '\n' +
        'fade-in(color, amount)\n' +
        '  color + rgba(black, percent-to-decimal(amount))\n' +
        '\n' +
        '// spin hue by a given amount\n' +
        '\n' +
        'spin(color, amount)\n' +
        '  color + unit(amount, deg)\n' +
        '\n' +
        '// mix two colors by a given amount\n' +
        '\n' +
        'mix(color1, color2, weight = 50%)\n' +
        '  unless weight in 0..100\n' +
        '    error("Weight must be between 0% and 100%")\n' +
        '\n' +
        '  if length(color1) == 2\n' +
        '    weight = color1[0]\n' +
        '    color1 = color1[1]\n' +
        '\n' +
        '  else if length(color2) == 2\n' +
        '    weight = 100 - color2[0]\n' +
        '    color2 = color2[1]\n' +
        '\n' +
        '  require-color(color1)\n' +
        '  require-color(color2)\n' +
        '\n' +
        "  p = unit(weight / 100, '')\n" +
        '  w = p * 2 - 1\n' +
        '\n' +
        '  a = alpha(color1) - alpha(color2)\n' +
        '\n' +
        '  w1 = (((w * a == -1) ? w : (w + a) / (1 + w * a)) + 1) / 2\n' +
        '  w2 = 1 - w1\n' +
        '\n' +
        '  channels = (red(color1) red(color2)) (green(color1) green(color2)) (blue(color1) blue(color2))\n' +
        '  rgb = ()\n' +
        '\n' +
        '  for pair in channels\n' +
        '    push(rgb, floor(pair[0] * w1 + pair[1] * w2))\n' +
        '\n' +
        '  a1 = alpha(color1) * p\n' +
        '  a2 = alpha(color2) * (1 - p)\n' +
        '  alpha = a1 + a2\n' +
        '\n' +
        '  rgba(rgb[0], rgb[1], rgb[2], alpha)\n' +
        '\n' +
        '// invert colors, leave alpha intact\n' +
        '\n' +
        "invert(color = '')\n" +
        "  if color is a 'color'\n" +
        '    rgba(#fff - color, alpha(color))\n' +
        '  else\n' +
        '    unquote( "invert(" + color + ")" )\n' +
        '\n' +
        '// give complement of the given color\n' +
        '\n' +
        'complement( color )\n' +
        '  spin( color, 180 )\n' +
        '\n' +
        '// give grayscale of the given color\n' +
        '\n' +
        "grayscale( color = '' )\n" +
        "  if color is a 'color'\n" +
        '    desaturate( color, 100% )\n' +
        '  else\n' +
        '    unquote( "grayscale(" + color + ")" )\n' +
        '\n' +
        '// mix the given color with white\n' +
        '\n' +
        'tint( color, percent )\n' +
        '  mix( white, color, percent )\n' +
        '\n' +
        '// mix the given color with black\n' +
        '\n' +
        'shade( color, percent )\n' +
        '  mix( black, color, percent )\n' +
        '\n' +
        '// return the last value in the given expr\n' +
        '\n' +
        'last(expr)\n' +
        '  expr[length(expr) - 1]\n' +
        '\n' +
        '// return keys in the given pairs or object\n' +
        '\n' +
        'keys(pairs)\n' +
        '  ret = ()\n' +
        "  if type(pairs) == 'object'\n" +
        '    for key in pairs\n' +
        '      push(ret, key)\n' +
        '  else\n' +
        '    for pair in pairs\n' +
        '      push(ret, pair[0]);\n' +
        '  ret\n' +
        '\n' +
        '// return values in the given pairs or object\n' +
        '\n' +
        'values(pairs)\n' +
        '  ret = ()\n' +
        "  if type(pairs) == 'object'\n" +
        '    for key, val in pairs\n' +
        '      push(ret, val)\n' +
        '  else\n' +
        '    for pair in pairs\n' +
        '      push(ret, pair[1]);\n' +
        '  ret\n' +
        '\n' +
        '// join values with the given delimiter\n' +
        '\n' +
        'join(delim, vals...)\n' +
        "  buf = ''\n" +
        '  vals = vals[0] if length(vals) == 1\n' +
        '  for val, i in vals\n' +
        '    buf += i ? delim + val : val\n' +
        '\n' +
        '// add a CSS rule to the containing block\n' +
        '\n' +
        '// - This definition allows add-property to be used as a mixin\n' +
        '// - It has the same effect as interpolation but allows users\n' +
        '//   to opt for a functional style\n' +
        '\n' +
        'add-property-function = add-property\n' +
        'add-property(name, expr)\n' +
        '  if mixin\n' +
        '    {name} expr\n' +
        '  else\n' +
        '    add-property-function(name, expr)\n' +
        '\n' +
        'prefix-classes(prefix)\n' +
        '  -prefix-classes(prefix, block)\n' +
        '\n' +
        '// Caching mixin, use inside your functions to enable caching by extending.\n' +
        '\n' +
        '$stylus_mixin_cache = {}\n' +
        'cache()\n' +
        "  $key = (current-media() or 'no-media') + '__' + called-from[0] + '__' + arguments\n" +
        '  if $key in $stylus_mixin_cache\n' +
        '    @extend {"$cache_placeholder_for_" + $stylus_mixin_cache[$key]}\n' +
        "  else if 'cache' in called-from\n" +
        '    {block}\n' +
        '  else\n' +
        '    $id = length($stylus_mixin_cache)\n' +
        '\n' +
        '    &,\n' +
        '    /$cache_placeholder_for_{$id}\n' +
        '      $stylus_mixin_cache[$key] = $id\n' +
        '      {block}\n' +
        '\n' +
        '// Percentage function to convert a number, e.g. ".45", into a percentage, e.g. "45%"\n' +
        '\n' +
        'percentage(num)\n' +
        "  return unit(num * 100, '%')\n" +
        '\n' +
        '// Returns the position of a `value` within a `list`\n' +
        '\n' +
        'index(list, value)\n' +
        '  for val, i in list\n' +
        '    return i if val == value\n'
    },
    isOperational: true,
    fromStylus: true,
    lineno: 14,
    column: 5,
    filename: 'D:/ProgrammeDisk/web-coder-jason/hexo-jason-blog/node_modules/stylus/lib/functions/index.styl',
    stylusStack: '',
    input: 'called-from = ()\n' +
      '\n' +
      'vendors = moz webkit o ms official\n' +
      '\n' +
      '// stringify the given arg\n' +
      '\n' +
      '-string(arg)\n' +
      "  type(arg) + ' ' + arg\n" +
      '\n' +
      '// require a color\n' +
      '\n' +
      'require-color(color)\n' +
      "  unless color is a 'color'\n" +
      "    error('RGB or HSL value expected, got a ' + -string(color))\n" +
      '\n' +
      '// require a unit\n' +
      '\n' +
      'require-unit(n)\n' +
      "  unless n is a 'unit'\n" +
      "    error('unit expected, got a ' + -string(n))\n" +
      '\n' +
      '// require a string\n' +
      '\n' +
      'require-string(str)\n' +
      "  unless str is a 'string' or str is a 'ident'\n" +
      "    error('string expected, got a ' + -string(str))\n" +
      '\n' +
      '// Math functions\n' +
      '\n' +
      "abs(n) { math(n, 'abs') }\n" +
      'min(a, b) { a < b ? a : b }\n' +
      'max(a, b) { a > b ? a : b }\n' +
      '\n' +
      '// Trigonometrics\n' +
      "PI = -math-prop('PI')\n" +
      '\n' +
      'radians-to-degrees(angle)\n' +
      '  angle * (180 / PI)\n' +
      '\n' +
      'degrees-to-radians(angle)\n' +
      '  angle * (PI / 180)\n' +
      '\n' +
      'sin(n)\n' +
      "  n = unit(n) == 'deg' ? degrees-to-radians(unit(n, '')) : unit(n, '')\n" +
      "  round(math(n, 'sin'), 9)\n" +
      '\n' +
      'cos(n)\n' +
      "  n = unit(n) == 'deg' ? degrees-to-radians(unit(n, '')) : unit(n, '')\n" +
      "  round(math(n, 'cos'), 9)\n" +
      '\n' +
      '// Rounding Math functions\n' +
      '\n' +
      'ceil(n, precision = 0)\n' +
      '  multiplier = 10 ** precision\n' +
      "  math(n * multiplier, 'ceil') / multiplier\n" +
      '\n' +
      'floor(n, precision = 0)\n' +
      '  multiplier = 10 ** precision\n' +
      "  math(n * multiplier, 'floor') / multiplier\n" +
      '\n' +
      'round(n, precision = 0)\n' +
      '  multiplier = 10 ** precision\n' +
      "  math(n * multiplier, 'round') / multiplier\n" +
      '\n' +
      '// return the sum of the given numbers\n' +
      '\n' +
      'sum(nums)\n' +
      '  sum = 0\n' +
      '  sum += n for n in nums\n' +
      '\n' +
      '// return the average of the given numbers\n' +
      '\n' +
      'avg(nums)\n' +
      '  sum(nums) / length(nums)\n' +
      '\n' +
      '// return a unitless number, or pass through\n' +
      '\n' +
      'remove-unit(n)\n' +
      '  if typeof(n) is "unit"\n' +
      '    unit(n, "")\n' +
      '  else\n' +
      '    n\n' +
      '\n' +
      '// convert a percent to a decimal, or pass through\n' +
      '\n' +
      'percent-to-decimal(n)\n' +
      '  if unit(n) is "%"\n' +
      '    remove-unit(n) / 100\n' +
      '  else\n' +
      '    n\n' +
      '\n' +
      '// check if n is an odd number\n' +
      '\n' +
      'odd(n)\n' +
      '  1 == n % 2\n' +
      '\n' +
      '// check if n is an even number\n' +
      '\n' +
      'even(n)\n' +
      '  0 == n % 2\n' +
      '\n' +
      '// check if color is light\n' +
      '\n' +
      'light(color)\n' +
      '  lightness(color) >= 50%\n' +
      '\n' +
      '// check if color is dark\n' +
      '\n' +
      'dark(color)\n' +
      '  lightness(color) < 50%\n' +
      '\n' +
      '// desaturate color by amount\n' +
      '\n' +
      'desaturate(color, amount)\n' +
      "  adjust(color, 'saturation', - amount)\n" +
      '\n' +
      '// saturate color by amount\n' +
      '\n' +
      "saturate(color = '', amount = 100%)\n" +
      "  if color is a 'color'\n" +
      "    adjust(color, 'saturation', amount)\n" +
      '  else\n' +
      '    unquote( "saturate(" + color + ")" )\n' +
      '\n' +
      '// darken by the given amount\n' +
      '\n' +
      'darken(color, amount)\n' +
      "  adjust(color, 'lightness', - amount)\n" +
      '\n' +
      '// lighten by the given amount\n' +
      '\n' +
      'lighten(color, amount)\n' +
      "  adjust(color, 'lightness', amount)\n" +
      '\n' +
      '// decrease opacity by amount\n' +
      '\n' +
      'fade-out(color, amount)\n' +
      '  color - rgba(black, percent-to-decimal(amount))\n' +
      '\n' +
      '// increase opacity by amount\n' +
      '\n' +
      'fade-in(color, amount)\n' +
      '  color + rgba(black, percent-to-decimal(amount))\n' +
      '\n' +
      '// spin hue by a given amount\n' +
      '\n' +
      'spin(color, amount)\n' +
      '  color + unit(amount, deg)\n' +
      '\n' +
      '// mix two colors by a given amount\n' +
      '\n' +
      'mix(color1, color2, weight = 50%)\n' +
      '  unless weight in 0..100\n' +
      '    error("Weight must be between 0% and 100%")\n' +
      '\n' +
      '  if length(color1) == 2\n' +
      '    weight = color1[0]\n' +
      '    color1 = color1[1]\n' +
      '\n' +
      '  else if length(color2) == 2\n' +
      '    weight = 100 - color2[0]\n' +
      '    color2 = color2[1]\n' +
      '\n' +
      '  require-color(color1)\n' +
      '  require-color(color2)\n' +
      '\n' +
      "  p = unit(weight / 100, '')\n" +
      '  w = p * 2 - 1\n' +
      '\n' +
      '  a = alpha(color1) - alpha(color2)\n' +
      '\n' +
      '  w1 = (((w * a == -1) ? w : (w + a) / (1 + w * a)) + 1) / 2\n' +
      '  w2 = 1 - w1\n' +
      '\n' +
      '  channels = (red(color1) red(color2)) (green(color1) green(color2)) (blue(color1) blue(color2))\n' +
      '  rgb = ()\n' +
      '\n' +
      '  for pair in channels\n' +
      '    push(rgb, floor(pair[0] * w1 + pair[1] * w2))\n' +
      '\n' +
      '  a1 = alpha(color1) * p\n' +
      '  a2 = alpha(color2) * (1 - p)\n' +
      '  alpha = a1 + a2\n' +
      '\n' +
      '  rgba(rgb[0], rgb[1], rgb[2], alpha)\n' +
      '\n' +
      '// invert colors, leave alpha intact\n' +
      '\n' +
      "invert(color = '')\n" +
      "  if color is a 'color'\n" +
      '    rgba(#fff - color, alpha(color))\n' +
      '  else\n' +
      '    unquote( "invert(" + color + ")" )\n' +
      '\n' +
      '// give complement of the given color\n' +
      '\n' +
      'complement( color )\n' +
      '  spin( color, 180 )\n' +
      '\n' +
      '// give grayscale of the given color\n' +
      '\n' +
      "grayscale( color = '' )\n" +
      "  if color is a 'color'\n" +
      '    desaturate( color, 100% )\n' +
      '  else\n' +
      '    unquote( "grayscale(" + color + ")" )\n' +
      '\n' +
      '// mix the given color with white\n' +
      '\n' +
      'tint( color, percent )\n' +
      '  mix( white, color, percent )\n' +
      '\n' +
      '// mix the given color with black\n' +
      '\n' +
      'shade( color, percent )\n' +
      '  mix( black, color, percent )\n' +
      '\n' +
      '// return the last value in the given expr\n' +
      '\n' +
      'last(expr)\n' +
      '  expr[length(expr) - 1]\n' +
      '\n' +
      '// return keys in the given pairs or object\n' +
      '\n' +
      'keys(pairs)\n' +
      '  ret = ()\n' +
      "  if type(pairs) == 'object'\n" +
      '    for key in pairs\n' +
      '      push(ret, key)\n' +
      '  else\n' +
      '    for pair in pairs\n' +
      '      push(ret, pair[0]);\n' +
      '  ret\n' +
      '\n' +
      '// return values in the given pairs or object\n' +
      '\n' +
      'values(pairs)\n' +
      '  ret = ()\n' +
      "  if type(pairs) == 'object'\n" +
      '    for key, val in pairs\n' +
      '      push(ret, val)\n' +
      '  else\n' +
      '    for pair in pairs\n' +
      '      push(ret, pair[1]);\n' +
      '  ret\n' +
      '\n' +
      '// join values with the given delimiter\n' +
      '\n' +
      'join(delim, vals...)\n' +
      "  buf = ''\n" +
      '  vals = vals[0] if length(vals) == 1\n' +
      '  for val, i in vals\n' +
      '    buf += i ? delim + val : val\n' +
      '\n' +
      '// add a CSS rule to the containing block\n' +
      '\n' +
      '// - This definition allows add-property to be used as a mixin\n' +
      '// - It has the same effect as interpolation but allows users\n' +
      '//   to opt for a functional style\n' +
      '\n' +
      'add-property-function = add-property\n' +
      'add-property(name, expr)\n' +
      '  if mixin\n' +
      '    {name} expr\n' +
      '  else\n' +
      '    add-property-function(name, expr)\n' +
      '\n' +
      'prefix-classes(prefix)\n' +
      '  -prefix-classes(prefix, block)\n' +
      '\n' +
      '// Caching mixin, use inside your functions to enable caching by extending.\n' +
      '\n' +
      '$stylus_mixin_cache = {}\n' +
      'cache()\n' +
      "  $key = (current-media() or 'no-media') + '__' + called-from[0] + '__' + arguments\n" +
      '  if $key in $stylus_mixin_cache\n' +
      '    @extend {"$cache_placeholder_for_" + $stylus_mixin_cache[$key]}\n' +
      "  else if 'cache' in called-from\n" +
      '    {block}\n' +
      '  else\n' +
      '    $id = length($stylus_mixin_cache)\n' +
      '\n' +
      '    &,\n' +
      '    /$cache_placeholder_for_{$id}\n' +
      '      $stylus_mixin_cache[$key] = $id\n' +
      '      {block}\n' +
      '\n' +
      '// Percentage function to convert a number, e.g. ".45", into a percentage, e.g. "45%"\n' +
      '\n' +
      'percentage(num)\n' +
      "  return unit(num * 100, '%')\n" +
      '\n' +
      '// Returns the position of a `value` within a `list`\n' +
      '\n' +
      'index(list, value)\n' +
      '  for val, i in list\n' +
      '    return i if val == value\n'
    }
    } Asset render failed: %s css/main.css
    (node:11536) Warning: Accessing non-existent property 'lineno' of module exports inside circular dependency
    (Use `node --trace-warnings ...` to show where the warning was created)
    (node:11536) Warning: Accessing non-existent property 'column' of module exports inside circular dependency
    (node:11536) Warning: Accessing non-existent property 'filename' of module exports inside circular dependency
    (node:11536) Warning: Accessing non-existent property 'lineno' of module exports inside circular dependency
    (node:11536) Warning: Accessing non-existent property 'column' of module exports inside circular dependency
    (node:11536) Warning: Accessing non-existent property 'filename' of module exports inside circular dependency
    INFO  Good bye

Environment Information

Node.js and NPM Information

v16.13.0
8.3.1

Package dependencies Information

hexo-site@0.0.0 D:\ProgrammeDisk\web-coder-jason\hexo-jason-blog
+-- -@0.0.1
+-- gulp-uglify@3.0.2
+-- gulp@4.0.2
+-- hexo-deployer-git@3.0.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-search@2.4.3
+-- hexo-generator-searchdb@1.4.0
+-- hexo-generator-sitemap@2.2.0
+-- hexo-generator-tag@1.0.0
+-- hexo-leancloud-counter-security@1.5.0
+-- hexo-renderer-ejs@2.0.0
+-- hexo-renderer-marked@5.0.0
+-- hexo-renderer-pug@3.0.0
+-- hexo-renderer-stylus@2.0.1
+-- hexo-server@3.0.0
+-- hexo-tag-cloud@2.1.2
+-- hexo-word-counter@0.0.3
+-- hexo@6.0.0
+-- readable-stream@3.6.0
`-- uglify-es@3.3.9

Hexo Configuration

# Hexo Configuration
## Docs: https://hexo.io/docs/configuration.html
## Source: https://github.com/hexojs/hexo/

# Site
title: '杰森的博客' 
subtitle: '全栈杰森'
description: 'A blacksmith must be strong' 
keywords: 博客,杰森
author: 'Jason' 
language: zh-CN
timezone: ''

# URL
## Set your site url here. For example, if you use GitHub Page, set url as 'https://username.github.io/project'
url: https://coder-jason.cn
permalink: :year/:month/:day/:title/
permalink_defaults:
pretty_urls:
  trailing_index: true # Set to false to remove trailing 'index.html' from permalinks
  trailing_html: true # Set to false to remove trailing '.html' from permalinks

# Directory
source_dir: source
public_dir: public
tag_dir: tags
archive_dir: archives
category_dir: categories
code_dir: downloads/code
i18n_dir: :lang
skip_render:

# Writing
new_post_name: :title.md # File name of new posts
default_layout: post
titlecase: false # Transform title into titlecase
external_link:
  enable: true # Open external links in new tab
  field: site # Apply to the whole site
  exclude: ''
filename_case: 0
render_drafts: false
post_asset_folder: false
relative_link: false
future: true
highlight:
  enable: true
  line_number: true
  auto_detect: false
  tab_replace: ''
  wrap: true
  hljs: false
prismjs:
  enable: false
  preprocess: true
  line_number: true
  tab_replace: ''

# Home page setting
# path: Root path for your blogs index page. (default = '')
# per_page: Posts displayed per page. (0 = disable pagination)
# order_by: Posts order. (Order by date descending by default)
index_generator:
  path: ''
  per_page: 10 
  order_by: -date

# Category & Tag
default_category: uncategorized
category_map:
tag_map:

# Metadata elements
## https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta
meta_generator: true

# Date / Time format
## Hexo uses Moment.js to parse and display date
## You can customize the date format as defined in
## http://momentjs.com/docs/#/displaying/format/
date_format: YYYY-MM-DD 
time_format: HH:mm:ss 
## updated_option supports 'mtime', 'date', 'empty'
updated_option: 'mtime'

# Pagination
## Set per_page to 0 to disable pagination
per_page: 10
pagination_dir: page

# Include / Exclude file(s)
## include:/exclude: options only apply to the 'source/' folder
include:
exclude:
ignore:

# Extensions
#Plugins: #https://hexo.io/plugins/
  #-  
## Themes: https://hexo.io/themes/
theme: next

# Local Search
search:
  path: search.xml
  field: post
  # content: true
  format: html
  limit: 10000

# hexo-word-counter 字数、时间统计插件配置
symbols_count_time:
  symbols: true # 本文字数
  time: true # 本文阅读时间
  total_symbols: true # 本站总字数
  total_time: true # 本站总阅读时间
  awl: 4 # 平均字长
  wpm: 275 # 每分钟阅读字数

# hexo-leancloud-counter-security 文章阅读量显示功能
leancloud_counter_security:
  enable_sync: true
  app_id: <>
  app_key: <>
  username: <> # Will be asked while deploying if is left blank
  password: <> # Recommmended to be left blank. Will be asked while deploying if is left blank

# 标签云插件自定义配置
tag_cloud:
  textFont: Trebuchet MS, Helvetica
  textColor: '#999999'
  textHeight: 19
  outlineColor: '#222222'
  maxSpeed: 0.06
  pauseOnSelected: false

# Extensions
## Plugins: http://hexo.io/plugins/
plugins: hexo-generate-feed # rss 订阅插件

# Deployment
## Docs: https://hexo.io/docs/one-command-deployment
deploy: # 项目发布/部署设置
- type: git
  repo: git@my ip:/www/repo/hexo.git 
  branch: master

NexT Configuration

只进行了基本的插件、主题样式修改,完全按照官方文档操作,已确保无误

welcome[bot] commented 2 years ago

Thanks for opening this issue, maintainers will get back to you as soon as possible!

Lyunvy commented 2 years ago

我也出现了这种情况,下载新的next/_config.yml后发现与之前的文件内容有些许改动,似乎是因为主题的配置文件更新了许多东西,更新主题的时候只更新了样式文件之类的,用的还是原来的配置文件的内容的话可能不匹配。 使用新的主题配置文件后解决该问题。

PDPENG commented 2 years ago

我也出现了这种情况,下载新的next/_config.yml后发现与之前的文件内容有些许改动,似乎是因为主题的配置文件更新了许多东西,更新主题的时候只更新了样式文件之类的,用的还是原来的配置文件的内容的话可能不匹配。 使用新的主题配置文件后解决该问题。

我在使用 git pull 更新的时候,版本号是 8.9.0 却显示已经最新(无法更新最新版),关于适配的问题,请问您是直接将最新版主题配置文件全部剪切到了旧版本的配置文件中吗?

Lyunvy commented 2 years ago

嗯,最新版的主题配置文件修改后把原来的替换掉了。

PDPENG commented 2 years ago

嗯,最新版的主题配置文件修改后把原来的替换掉了。

好的 我尝试下 非常感谢

stevenjoezhang commented 2 years ago

最新版是 8.10.0,问题已经在这个 commit 里修复了: https://github.com/next-theme/hexo-theme-next/commit/6fd36d9ab446fcfaf7357ed9f90c5c1e06115046

PDPENG commented 2 years ago

最新版是 8.10.0,问题已经在这个 commit 里修复了: next-theme/hexo-theme-next@6fd36d9

我已经尝试剪切最新版的配置文件,该提交中的修改也已改动,还是同样的问题(无样式)

Lyunvy commented 2 years ago

不如尝试另外重新 clone 一个 next 主题文件夹,修改后把整个主题文件夹替换掉(要先删除原来的文件夹,因为里面有的文件新版没有,原来的有)。 实在不行,也可以直接重新整一个博客文件夹,博客文章还在,重新开始也不算太难。(我测试重新部署一个博客文件夹是可以正常本地预览的) 想来还是主题配置文件与样式文件某些地方不匹配导致的,按理来说,删除theme/next后再git clone一个,重新配置后就应该可以的。

PDPENG commented 2 years ago

不如尝试另外重新 clone 一个 next 主题文件夹,修改后把整个主题文件夹替换掉(要先删除原来的文件夹,因为里面有的文件新版没有,原来的有)。 实在不行,也可以直接重新整一个博客文件夹,博客文章还在,重新开始也不算太难。(我测试重新部署一个博客文件夹是可以正常本地预览的) 想来还是主题配置文件与样式文件某些地方不匹配导致的,按理来说,删除theme/next后再git clone一个,重新配置后就应该可以的。

好的,我再尝试看看,感觉hexo还是比较麻烦的,本地一旦出错就联系不上了,更新也成问题,在主题这块儿配置要很久

Linkeer365 commented 2 years ago

试着改下这个,看看可不可以

vendors: internal: local -> unpkg plugins: jsdelivr -> unpkg

PDPENG commented 2 years ago

This issue has been resolved by redeployment, thank you for your solution.