2016-01-04 26 views
7

我可以使用nodemon来绑定我的javascript吗?我没有使用任何构建工具,例如吞咽或咕噜声,并希望最大限度地使用节点和npm。如何使用nodemon进行linting?

The output from nodemon can be piped。我想用这个来修改使用eslint的文件。

这里是我的package.json

{ 
 
    "name": "app", 
 
    "version": "0.0.1", 
 
    "private": true, 
 
    "scripts": { 
 
    "start": "nodemon server.js", 
 
    "lint": "eslint" 
 
    }, 
 
    "dependencies": { 
 
    "MD5": "*", 
 
    "clean-css": "*", 
 
    "express": "~4.9.0", 
 
    "express-handlebars": "~2.0.1", 
 
    "express-redis-cache": "*", 
 
    "foundation-sites": "~5.5.3", 
 
    "fs-extra": "~0.8.1", 
 
    "node-rest-client": "~1.5.1", 
 
    "node-sass": "*", 
 
    "path": "*" 
 
    }, 
 
    "devDependencies": { 
 
    "babel-eslint": "^4.1.6", 
 
    "eslint": "^1.10.3", 
 
    "eslint-config-airbnb": "^2.1.1", 
 
    "eslint-config-airbnb-es5": "^1.0.8", 
 
    "eslint-plugin-react": "^3.13.1", 
 
    "nodemon": "~1.8.1", 
 
    "parallelshell": "~2.0.0", 
 
    "watch": "~0.17.1" 
 
    } 
 
}

我尝试这样做。但它不起作用,它会给出错误。

 "scripts": { 
    "start": "nodemon({ script: 'server.js' }).on('restart', function() {console.log('nodemon started');}).on('crash', function() {console.log('script crashed for some reason');});", 
    "lint": "eslint" 
    }, 
+1

是否有任何特定的原因,你想在运行时使用进程管理器执行linting,而不是直接通过文本编辑器执行? – Seonixx

回答

20

您可以使用nodemonexec选项为您节省代码运行测试。这里有一个例子:

nodemon server.js --exec 'npm run test && node' 

这将导致nodemon运行npm run test && node server.js,直到所有的测试都成功运行它不会启动服务器。

+0

为什么这不被接受答案超越了我。这正是你在寻找OP的答案。 – shriek

+0

虽然我似乎没有在Windows上工作。 – Oskar

-4

Linting纯粹是一个开发过程。 Nodemon是一个用于运行服务器的工具,不与构建工具连接,但是运行应用程序。因此答案是“否”。您应该使用适当的工具进行开发自动化,例如grunt,gulp等或者纯粹的NPM脚本(在您的package.json文件中)。

如果您的项目很复杂,有很多阶段和很多捆绑等,我推荐使用自动化工具。但是,只有在发短信的时候,您才可以在npm package.json中准备一行,例如。像这样:

"scripts": { 
    "lint": "eslint --fix src test", 
} 

然后用命令'npm run lint'运行它。请记住,通过使用正确配置的.eslintrc文件,您既可以通过控制台命令,也可以通过编辑器/ IDE(几乎每个广泛流行的IDE都具有eslint插件)来提示您的代码。有关配置eslint和创建适当的eslintrc文件

更多信息可以在这里找到: http://eslint.org/docs/user-guide/configuring

+0

我在开发中使用nodemon来监视我的JavaScript文件。我不打算在生产中使用它,并且它已经列在dev-dependencies中。我想这是nodemon的正确使用,并且由于它监视了我应用程序中的所有javascript文件,我觉得必须有一种方法来使用它来监视我是否正在编写正确的代码。这就是为什么我想将它延伸到线状。 – DrEarnest

+1

我改进了我的答案,使其更加合适:)主节点的使用是在开发过程中更改文件时运行/重新启动服务器,但不能用于构建。如果你只想将eslinter的输出添加到控制台(在我看来有点不切实际),你可以使用nodemon配置文件中的'events restart'配置标志并在那里添加eslint。 – SzybkiSasza

+0

您通常还会使用grunt或gulp手表来完成您使用nodemon进行的操作。另外,您还可以自动处理文件来压缩文件,下载需要的资源,将您的文件打包等。 –

3

我使用Standard.js进行短线处理,我可以使用package.json脚本将它与nodemon配合使用。

"scripts": { 
    "lint": "standard", 
    "dev": "nodemon ./app --exec \"npm run lint && node\"" 
    "start": "nodemon ./app" 
}

当我运行npm run dev时,我所做的任何更改都将受到监视和删除。我使用PowerShellWindows中对此进行了测试。