Node.js初学者尝试跟随教程 - 需要将Jade引用更改为Pug。

16

我正在尝试跟随这个教程学习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进行讨论)

如果我想将jade更改为pug,我需要在这个package.json文件中指定一个版本号吗?或者我可以告诉它获取最新版本? 另外,我需要删除我的文件夹结构,然后重新运行npm install命令吗?还是直接编辑package.json文件并重试npm install即可?

最后,基于你的经验,如果我只是想学习node的工作原理,我是否有必要从jade转换到pug?我很想就按照现在的方式继续...但是,如果这个应用程序可以工作,我知道它将被推广到生产环境中... 所以...我想我应该在一开始就做出正确的决定。

谢谢,如果我的问题很初级,请见谅。

3个回答

28

看起来你有一些问题,所以我会按顺序回答它们。 如果你想将 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更改了名称。如果该软件包发生更改,使用当前名称将是一个好主意,这样你就可以保持更新

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


7
如果您在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}")

to

a(href=link)

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


2

供日后参考:Express 作者现在在他们的教程这里中使用express myapp --view=pug。这样就会安装 Pug 而不是已弃用的 Jade。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接