我尝试按照本教程了解node.js:
http://cwbuecheler.com/web/tutorials/2014/restful-web-app-node-express-mongodb/
当我跑步" npm install"我看到的一些消息包括:
npm WARN deprecated jade@1.11.0: Jade has been renamed to pug, please install the latest version of pug instead of jade
npm WARN deprecated transformers@2.1.0: Deprecated, use jstransformer
然后它继续进行,似乎无论如何都要设置应用程序。 我的package.json文件目前看起来像这样:
{
"name": "testapp",
"version": "0.0.0",
"private": true,
"scripts": {
"start": "node ./bin/www"
},
"dependencies": {
"body-parser": "~1.13.2",
"cookie-parser": "~1.3.5",
"debug": "~2.2.0",
"express": "~4.13.1",
"jade": "~1.11.0",
"morgan": "~1.6.1",
"serve-favicon": "~2.3.0",
"mongodb": "^1.4.4",
"monk": "^1.0.1"
}
}
问题: (这些问题适用于我得到警告的两个包裹,但出于讨论目的,我只是选择玉石/哈巴狗)
如果我想将jade改为pug,我是否需要在此package.json文件中指定版本号?或者我可以告诉它以某种方式得到最新消息? 另外,我是否需要吹掉我的文件夹结构,然后重新运行npm install命令?或者我可以编辑package.json文件并重试npm install吗?
最后,根据您的经验,如果我只是想了解节点是如何工作的,那么从玉改为哈巴狗有多重要?我很想离开原样......但话又说回来,如果这个应用程序有效,我知道它将会投入生产...... 所以......我想我应该事先做出正确的决定。
非常感谢,如果我的问题得到了解决,我很抱歉。
答案 0 :(得分:12)
看起来你有几个问题,所以我会按顺序完成它们。 如果要将jade更改为pug,可以从命令行运行以下命令:
npm uninstall jade --save
然后
npm install pug --save
除非您在安装时通过说pug@1.1.0来指定版本,否则您将获得当前版本。以下是有关如何在JSON https://docs.npmjs.com/files/package.json中指定版本的文档,但您可以指定特定版本或指定主要版本或次要版本。这实际上取决于你想做什么。
为了删除package.json文件中没有的模块,请使用prune命令:
npm prune
这应该删除json中未列出的模块(只要它们不是依赖项)
我认为由于版权问题,Jade被迫在npm更改名称。我认为使用当前名称是个好主意,这样如果包装有变化,你就可以保持最新状态
nb:确保从.jade
更改扩展名为.pug答案 1 :(得分:2)
如果您使用带有Node.js / Express的jade / pug文件,请将应用的模板引擎更改为:
app.set('view engine', 'pug')
另外
npm install pug --save
将于2017年3月安装最新版本的pug@2.0.0-beta11。这可能需要对旧的.jade文件进行一些更改,例如您应该简化:
a(href="/#{link}")
到
a(href=link)
有关重大变化的更多信息#2305
答案 2 :(得分:0)
供将来参考:Express作者现在在其教程here中使用express myapp --view=pug
。这样,将安装Pug而不是弃用的Jade。