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
如果您将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的更多信息