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

Hap*_*ays 8 json mongodb node.js 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
Run Code Online (Sandbox Code Playgroud)

然后它继续前进,似乎无论如何都要设置应用程序.我的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"
  }
}
Run Code Online (Sandbox Code Playgroud)

问题:( 这些问题适用于我得到警告的两个包裹,但出于讨论目的,我只是选择玉/哈巴狗)

如果我想将jade改为pug,我是否需要在这个package.json文件中指定一个版本号?或者我可以告诉它以某种方式得到最新消息?另外,我是否需要吹掉我的文件夹结构,然后重新运行npm install命令?或者我可以编辑package.json文件并重试npm install吗?

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

如果我的问题真的很有用,谢谢,对不起.

小智 17

看起来你有几个问题所以我会按顺序完成它们.如果要将jade更改为pug,可以从命令行运行以下命令:

npm uninstall jade --save
Run Code Online (Sandbox Code Playgroud)

然后

npm install pug --save 
Run Code Online (Sandbox Code Playgroud)

除非您在安装时通过说pug@1.1.0来指定版本,例如,您将获得当前版本.以下是有关如何在JSON https://docs.npmjs.com/files/package.json中指定版本的文档,但您可以指定特定版本或指定主要版本或次要版本.这真的取决于你想做什么.

为了删除package.json文件中没有的模块,请使用prune命令:

npm prune
Run Code Online (Sandbox Code Playgroud)

这应该删除json中未列出的模块(只要它们不是依赖项)

我认为由于版权问题,Jade被迫在npm更改名称.我认为使用当前名称是个好主意,这样如果包装有变化,你就可以保持最新状态

nb:确保从.jade将扩展名更改为.pug


Gre*_*icz 5

如果您将jade/pug文件与Node.js/Express一起使用,请将应用程序的模板引擎更改为:

app.set('view engine', 'pug')
Run Code Online (Sandbox Code Playgroud)

npm install pug --save 
Run Code Online (Sandbox Code Playgroud)

将安装截至 2017 年 3 月最新版本的 pug@2.0.0-beta11。这可能需要对旧的 .jade 文件进行一些更改,例如您应该简化:

a(href="/#{link}")
Run Code Online (Sandbox Code Playgroud)

a(href=link)
Run Code Online (Sandbox Code Playgroud)

有关重大更改#2305的更多信息