Nodejs开发指南代码express -t ejs microblog后,package.json文件为何显示"jade": "~1.3.0"
Nodejs开发指南代码express -t ejs microblog后,package.json文件为何显示"jade": “~1.3.0”
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 的引用。以下是一些可能的原因和解决方法:
解释
-
遗留问题:尽管你选择了 EJS 作为模板引擎,但某些旧版本的 Express 可能会默认包含 Jade 的依赖项。
-
配置错误:可能是项目初始化过程中出现了一些配置上的错误。
解决方案
-
移除 Jade 依赖: 如果你不打算使用 Jade,可以直接从
package.json
文件中移除"jade": "~1.3.0"
这一行,并运行npm install
来更新依赖项。// package.json { "dependencies": { "ejs": "^3.1.6", // 移除或注释掉以下行 // "jade": "~1.3.0" } }
然后执行
npm install
更新依赖。 -
检查 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。