node.js noobie尝试按照教程 - 需要将jade引用更改为pug

时间:2016-07-29 20:40:44

标签: json node.js mongodb express

我尝试按照本教程了解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吗?

最后,根据您的经验,如果我只是想了解节点是如何工作的,那么从玉改为哈巴狗有多重要?我很想离开原样......但话又说回来,如果这个应用程序有效,我知道它将会投入生产...... 所以......我想我应该事先做出正确的决定。

非常感谢,如果我的问题得到了解决,我很抱歉。

3 个答案:

答案 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。