Node.js 将节点sass监视选项与npm运行脚本一起使用
因此,我在npm包脚本中运行任务,但我想通过Node.js 将节点sass监视选项与npm运行脚本一起使用,node.js,sass,npm,build-tools,node-sass,Node.js,Sass,Npm,Build Tools,Node Sass,因此,我在npm包脚本中运行任务,但我想通过npm start中的watch选项 这项工作: "scripts": { "scss": "node-sass src/style.scss dist/style.css -w" } 这不会编译、监视或抛出任何错误: "scripts": { "scss": "node-sass src/style.scss dist/style.css", "start": "parallelshell \"npm run scss -- -w\""
npm start
中的watch选项
这项工作:
"scripts": {
"scss": "node-sass src/style.scss dist/style.css -w"
}
这不会编译、监视或抛出任何错误:
"scripts": {
"scss": "node-sass src/style.scss dist/style.css",
"start": "parallelshell \"npm run scss -- -w\""
}
如果没有parallelshell或没有速记,则无法工作
我假设问题在于运行脚本在引号中传递额外的参数,因此该命令的结果如下:
node-sass src/style.scss dist/style.css "-w"
我希望它在不添加任何依赖项的情况下工作。我错过了什么
顺便说一句,我在Windows 10中使用命令提示符/git bash。这是我的css构建设置
"scripts": {
"css": "node-sass src/style.scss -o dist",
"css:watch": "npm run css && node-sass src/style.scss -wo dist"
},
"devDependencies": {
"node-sass": "^3.4.2"
}
o标志设置输出css的目录。
我有一个非监视版本“css”,因为监视版本“css:watch”~不会在运行时立即生成,它只在更改后运行,所以我调用
npm run css
打电话之前
node-sass src/style.scss -wo dist
如果您只希望它在更改时运行,而不是在第一次运行时运行,只需使用
"css:watch": "node-sass src/style.scss -wo dist"
顺便说一句,这是找我的零钱:
"scss": "node-sass src/style.scss dist/style.css",
"start": "parallelshell \"npm run scss && npm run scss -- -w\"
编辑:更改为异步脚本运行,用于初始编译,然后使用监视标志。在前面的答案的基础上,另一个选项是通过不重复
监视
脚本中的构建
脚本参数来利用NPM保持干燥:
"scripts": {
"build:sass": "node-sass -r --output-style compressed src/style.scss -o dist",
"watch:sass": "npm run build:sass && npm run build:sass -- -w"
}
在上面的示例中,watch:sass
脚本的工作方式如下:
build:sass
脚本。这将编译您的CSSbuild:sass
脚本,但这次包括-w
标志。这将在其中一个SASS文件更改时编译CSS--
脚本末尾使用的watch:sass
选项。这用于在执行脚本时传递自定义参数。从:
截至npm@2.0.0,您可以在执行脚本时使用自定义参数。特殊选项--getopt使用它来限定选项的结尾。npm将把--之后的所有参数直接传递给脚本
在我看来,对于较小的quick项目,最简单的方法就是打开一个新的bash窗口并粘贴:
node-sass src/ -wo dist
如果要在
.scss
文件中保存更改时自动查看和编译更改,可以使用以下解决方案:
"scripts": {
"watch:sass": "node-sass -w path/to/your/scss --output-style compressed",
// example : node-sass -w public/styles/scss/bootstrap.scss public/styles/style.css --output-style compressed
}
如果您使用vcode,我更喜欢使用extention-watching-sass-live-server,这是一种非常有用的方法有没有办法避开它传递的双引号?正如我所说,这是有效的:
node-sass-src/style.scss-dist/style.css-w
这不是:node-sass-src/style.scss-dist/style.css“-w”
谢谢你的提示。我现在就用它们。你可以用反斜杠避开双引号。比如:\“-w\”,这样双引号就不会使JSON无效,但是当您在终端运行命令时,它们会显示出来。我的意思是,npm运行scss--w不会通过节点sass src/style.css dist/style.scss“-w”
。等等。。。没有关系。我是个白痴。我不知道为什么以前我认为改变没有任何作用。谢谢你的帮助。我不得不将第二行改为这行,以便观察者工作(parallelshell 2.0):“开始”:“parallelshell\”npm run scss\“\”npm run scss--w\”
嗯,我还有2.0。如果同步运行任务,例如:npm运行scss&npm运行scss--w
,会怎么样。无论哪种方式对我都有效。对我来说不是这样的-watcher实际上并没有保持在“watch”模式,所以我坚持使用parallelshell文档。同时,我还创建了一个“prewatch”任务:“prewatch”:“npm运行scss”
您能编辑并解释答案吗“这是找我的钱”很模糊。什么是平行壳?请考虑我的答案()在这一个!哥们,那是金色的,谢谢你。仅供参考,对于其他节点sass选项:Thread 1.0以后的警告,脚本不需要“-”来转发选项。在将来的版本中,任何显式“-”都将按原样转发到脚本。脚本应更新为“watch:sass”:“npm运行构建:sass&&npm运行构建:sass-w”