Nodejs开发指南代码express -t ejs microblog后,package.json文件为何显示"jade": "~1.3.0"

Nodejs开发指南代码express -t ejs microblog后,package.json文件为何显示"jade": “~1.3.0”

3 回复

Nodejs开发指南代码express -t ejs microblog后,package.json文件为何显示"jade": “~1.3.0”

在使用 express -t ejs microblog 命令生成一个基于 EJS 模板引擎的 Express 应用时,你可能会发现生成的 package.json 文件中包含 "jade": "~1.3.0" 这样的依赖项。这看起来似乎与 EJS 相关,但实际上这是一个误解。

为什么会有 Jade 的依赖?

Jade 是一个非常流行的模板引擎,它后来被重命名为 Pug。尽管你指定了 EJS 作为模板引擎,Express 默认会包含一些通用的中间件和视图引擎。在早期版本中,Jade 曾是 Express 的默认视图引擎之一。因此,即使你选择了 EJS,项目中仍然可能保留了对 Jade 的依赖。

示例代码

假设你创建了一个名为 microblog 的 Express 项目:

express -t ejs microblog

进入项目目录并查看 package.json 文件,你可能会看到类似以下的内容:

{
  "name": "microblog",
  "version": "0.0.0",
  "private": true,
  "scripts": {
    "start": "node ./bin/www"
  },
  "dependencies": {
    "cookie-parser": "~1.4.4",
    "debug": "~2.6.9",
    "express": "~4.16.1",
    "jade": "~1.3.0",
    "morgan": "~1.9.1",
    "ejs": "~2.7.4"
  }
}

解释

  • "jade": "~1.3.0": 尽管你选择了 EJS 作为模板引擎,但项目中仍然包含了对 Jade 的依赖。这可能是由于早期版本的 Express 配置导致的。

  • "ejs": "~2.7.4": 这是明确指定的 EJS 模板引擎,用于渲染你的视图。

如何解决?

如果你确定不需要 Jade,可以手动删除 "jade": "~1.3.0" 这一行,并重新安装依赖:

npm install

这样,你的项目将只依赖于 EJS 和其他必要的库,从而减少潜在的冲突和混淆。

通过以上步骤,你可以确保项目配置正确,避免不必要的依赖问题。


-t改为-e

在使用 express -t ejs microblog 命令创建一个 Express 应用时,如果你发现 package.json 文件中出现了 "jade": "~1.3.0" 的依赖项,这可能是由于 Express 模板引擎配置的问题。实际上,当你使用 -t ejs 参数时,Express 应该默认使用 EJS 作为模板引擎。

不过,在旧版本的 Express 中,Jade(现更名为 Pug)是默认的模板引擎。可能是因为某些配置或者依赖关系残留了对 Jade 的引用。以下是一些可能的原因和解决方法:

解释

  1. 遗留问题:尽管你选择了 EJS 作为模板引擎,但某些旧版本的 Express 可能会默认包含 Jade 的依赖项。

  2. 配置错误:可能是项目初始化过程中出现了一些配置上的错误。

解决方案

  1. 移除 Jade 依赖: 如果你不打算使用 Jade,可以直接从 package.json 文件中移除 "jade": "~1.3.0" 这一行,并运行 npm install 来更新依赖项。

    // package.json
    {
      "dependencies": {
        "ejs": "^3.1.6",
        // 移除或注释掉以下行
        // "jade": "~1.3.0"
      }
    }
    

    然后执行 npm install 更新依赖。

  2. 检查 Express 版本:确保你使用的 Express 版本是最新的。你可以通过以下命令更新 Express:

    npm install express[@latest](/user/latest)
    

示例代码

假设你已经创建了一个名为 microblog 的项目,并且 package.json 文件中仍然存在 Jade 依赖项。你可以手动删除它:

// package.json
{
  "name": "microblog",
  "version": "1.0.0",
  "dependencies": {
    "express": "^4.17.1",
    "ejs": "^3.1.6"
    // 删除或注释掉以下行
    // "jade": "~1.3.0"
  }
}

然后运行 npm install 更新依赖项:

npm install

这样,你的项目将只依赖于 EJS,而不是 Jade。

回到顶部