所以我在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\""
}
如果没有parallelshell或速记,则无法工作。
我假设问题是run-script在引号中传递了额外的参数,所以命令如下所示:
node-sass src/style.scss dist/style.css "-w"
我希望不添加任何依赖项就能正常工作。我错过了什么?
顺便说一句,我在Windows 10中使用命令提示符/git bash。
7条答案
按热度按时间noj0wjuj1#
这是我的css建设设置
o标志设置输出css的目录。我有一个非监视版本“css”,因为监视版本“css:watch”~不会在运行时立即构建,它只在更改时运行,所以我调用
调用前
如果只希望它在发生更改时运行,而不是在首次运行时运行,则只需使用
ie3xauqp2#
在前面答案的基础上,另一种选择是利用NPM的custom script arguments,通过不重复
watch
脚本中的build
脚本参数来保持DRY:在上例中,
watch:sass
脚本的工作方式如下:1.运行
build:sass
脚本。这将编译您的CSS。1.再次运行
build:sass
脚本,但这次包含-w
标志。当SASS文件更改时,这将编译CSS。请注意
watch:sass
脚本末尾使用的--
选项,该选项用于在执行脚本时传递自定义参数。从npm@2.0.0开始,您可以在执行脚本时使用自定义参数。getopt使用特殊选项--来分隔选项的结尾。npm会将--后面的所有参数直接传递给您的脚本。
vfhzx4xs3#
顺便说一句,这是找我的钱:
修改:脚本运行时是异步的,对于初始编译,再加上watch标志.
pvabu6sv4#
package.json:
npm run compile:sass
注意如果你运行这个命令样式不会立即更新到css文件中,只有当它检测到sass文件中的变化它才更新你的css文件,而不是在初始运行时.
u5rb5r595#
在我看来,对于一个较小的快速项目,最简单的方法是打开一个新的bash窗口并粘贴:
thigvfpy6#
如果希望在
.scss
文件中保存更改时自动监视和编译更改,可以使用以下解决方案:x4shl7ld7#
我遇到了一些问题,因为
node-sass
is deprecated(另外,依赖于node-gyp、python、vs构建工具等)我用了这个软件包. json
请记住更改源文件夹和目标文件夹。