Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 一起观看SASS/SCSS和nodemon_Node.js_Sass_Watch_Nodemon - Fatal编程技术网

Node.js 一起观看SASS/SCSS和nodemon

Node.js 一起观看SASS/SCSS和nodemon,node.js,sass,watch,nodemon,Node.js,Sass,Watch,Nodemon,我想一起运行Nodemon和node sass watcher 我在package.json文件上尝试了以下脚本 "build-css": "node-sass --include-path scss scss/main.scss public/css/main.css", "watch-css": "nodemon -e scss -x \"npm run build-css & nodemon server.js\"" 和依赖性是: "devDependencies": {

我想一起运行Nodemon和node sass watcher

我在package.json文件上尝试了以下脚本

"build-css": "node-sass --include-path scss scss/main.scss public/css/main.css",
"watch-css": "nodemon -e scss -x \"npm run build-css & nodemon server.js\""
和依赖性是:

"devDependencies": {
    "node-sass": "^4.9.0",
    "nodemon": "^1.17.5"
},
它确实有效,但我的问题是,如果我不在
watch css
脚本中添加
&nodemon server.js
,它就不会运行服务器和web应用程序

有什么好的解决办法吗


谢谢

好吧,我现在有很多问题要回答,但我认为这个问题是非常开放的!我认为无论如何,你必须根据需求来改变事情。基本上,如果它起作用,那就不用担心了

有多种解决方案,如或,但我认为第三种脚本,如
“同时运行”:“npm run build css&npm run watch css”
在大多数情况下都很好,如果您记住
&
不是跨平台的,甚至不是跨shell的(如windows cmd vs powershell)。所以我想说,如果您在一个团队中工作,那么添加另一个开发依赖项可能会更容易

但我会吹响号角,因为我认为它在生产和开发方面都非常有效。生态系统文件特别有用。我还认为pm2完全取代了nodemon。并不是说nodemon不好,而是pm2对于多个过程来说是很好的。以下是我的一些npm脚本:

"winsrv": "pm2 flush & pm2 reload server/ecosystem-win.json & pm2 logs", 
"winprod": "webpack --config ./webpack.config.js & npm run winsrv",
"windev": "set NODE_ENV=development webpack --config webpack.dev.config.js"
最后我要补充的是,npm脚本中的post/pre钩子非常有用。对三个脚本运行一个命令:

"preprod": "./preprod.sh", // Makes backup of old files, changes symlink to the backup
"prod": "webpack --config ./webpack.config.js && pm2 flush && pm2 reload server/ecosystem-production.json",
"postprod": "./postprod.sh", // check files exist and relinks public to the new build

抱歉耽搁了,我分心了,遇到了一些障碍

我决定尝试节点sass编程api,我不确定这有多聪明,但我学到了一两件事

buildcss.js:

var sass = require("node-sass");
var fs = require("fs");
sass.render({file: "styles.scss"}, (err, results) => {
  if (err) { console.log(err); }
  fs.writeFile("styles.css", results.css, err => console.log);
  console.log('scss -> css complete!');
});
假服务器.js

console.log("server.js...");
setInterval(function() {
  console.log("interval that prevents our so called server from exiting" );
}, 1000 * 60 * 60);
json(在change.hmm上重新启动scss脚本)

和package.json

...
"scripts": {
    "start": "pm2 logs && pm2 reload ecosystem.json && pm2 logs --out"
},
npm启动


我还想补充一点,我通常通过webpack处理SCS编译,但我不能真正说明这里使用的过程(但它似乎工作得很好!)。

非常感谢您的帮助。我听从了你的指示。我从中得到了这个概念,并应用了以下对我有用的方法:

buildcss.js(在根目录下):

json(在根目录下):

和package.json:

  "scripts": {
    "start": "pm2 start ecosystem.json && pm2 logs --out"
  },
根据您在package.json上的代码,
的“开始”:“pm2日志和&pm2重新加载生态系统.json和&pm2日志--out”
,这对我不起作用。我遇到了以下错误:

[TAILING] Tailing last 15 lines for [all] processes (change the value with --lines option)
[PM2][ERROR] No file to stream for app [all], exiting.npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! mysite@1.0.0 start: `pm2 logs && pm2 reload ecosystem.json && pm2 logs --out`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the mysite@1.0.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
从日志文件:

12 info lifecycle mysite@1.0.0~start: Failed to exec start script
package.js
-e是扩展列表

app.js


谢谢你的帮助。pm2:我安装了pm2并生成了pm2生态系统简单配置文件。我在config.js文件中添加了以下配置:
module.exports={apps:[{name:“app1”,script:“./app.js”,watch:true},{name:“sass build”,script:“node sass--include path scss scss scss/main.scss public/css/main.css”,watch:true}]
我发现了错误[PM2][error]脚本未找到。我不太知道如何配置pm2配置文件。我认为该文件必须与运行脚本的位置有关。您可以添加一个“cwd”:“/absolute/path”,使其与运行pm2 start的位置无关。
pm2 start script.js
(与nodemon相同,但要查看输出,您需要执行
pm2日志
pm2日志
pm2 ls
显示正在运行的进程,
pm2 stop
停止。这些都是重要的。之后,你可以担心生态系统,这实际上只是pm2从配置开始的一种方式(观看哪些文件等),所以nodemon的最大区别在于pm2总是把你的东西放在后台。酷。你能给我一个例子,看看代码是什么样子的,或者如何将scss到css构建脚本放在package.json文件中?
  "scripts": {
    "start": "pm2 start ecosystem.json && pm2 logs --out"
  },
[TAILING] Tailing last 15 lines for [all] processes (change the value with --lines option)
[PM2][ERROR] No file to stream for app [all], exiting.npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! mysite@1.0.0 start: `pm2 logs && pm2 reload ecosystem.json && pm2 logs --out`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the mysite@1.0.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
12 info lifecycle mysite@1.0.0~start: Failed to exec start script
"scripts": {
  "start": "nodemon app.js -e js,scss,pug"
},
var result = sass.renderSync({
  file: scss_filename,
  [, options..]
});