Node.js 一起观看SASS/SCSS和nodemon
我想一起运行Nodemon和node sass watcher 我在package.json文件上尝试了以下脚本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": {
"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..]
});