使用 NPM node-sass 观看 SASS 文件

dpD*_*gnz 6 css sass node.js npm

我已经安装了 node-sass 并设置了选项,如使用 node-sass watch 选项和 npm run-script 的底部响应中所示,但是,它似乎对我不起作用。

这是我package.json最近尝试的文件:

{
  "name": "linkup-paints",
  "description": "NPM for Linkup Paint Supplies website for 2019",
  "version": "1.0.2",
  "main": "index.js",
  "scripts": {
    "start": "run-script-os",
    "start:win32": "browser-sync start --server --files '**/*.css, **/*.html, **/*.js, !node_modules/**/*, !styles/**/*' --directory --port 7777 --browser \"C:\\Program Files\\Firefox Developer Edition\\firefox.exe\"",
    "build-sass": "node-sass styles/main.scss css/main.css",
    "watch-sass": "node-sass -w styles/main.scss css/main.css"
  },
  "author": "dpDesignz",
  "license": "ISC",
  "devDependencies": {
    "browser-sync": "^2.26.3",
    "run-script-os": "^1.0.3",
    "node-sass": "^4.9.4"
  }
}
Run Code Online (Sandbox Code Playgroud)

所以我尝试过:

"build:sass": "node-sass -r --output-style compressed styles/main.scss -o css/main.css",
"watch:sass": "npm run build:sass && npm run build:sass -- -w"
Run Code Online (Sandbox Code Playgroud)

和:

"css": "node-sass styles/main.scss -o css/main.css",
"css:watch": "npm run css && node-sass styles/main.scss -wo css/main.css"
Run Code Online (Sandbox Code Playgroud)

和:

"scss": "node-sass --watch styles/main.scss -o css/main.css"
Run Code Online (Sandbox Code Playgroud)

和(如 sidthesloth 的建议):

"build-sass": "node-sass styles/main.scss css/main.css",
"watch-sass": "node-sass -w styles/main.scss css/main.css"
Run Code Online (Sandbox Code Playgroud)

我跑步npm i,一旦完成我就跑步npm start。浏览器同步启动,并监视文件更改,但当我css/main.css更改文件时,我的文件不会编译或更新.scss

我刚刚开始/学习如何使用 NPM,所以任何帮助将不胜感激。在过去的 2 个小时里,我已经翻遍了教程和答案(包括使用 node-sass通过五个快速步骤观看和编译 Sass以及使用 node-sass 在 npm 脚本中编译 Sass 文件),但没有成功。

我怎样才能让我的watchbuild工作?

更新

因此,对于将来寻找此内容的任何人来说,这只是一个更新,我不明白脚本是如何工作的,也没有意识到我的脚本没有彼此并行运行。我以为npm start触发了我所有的脚本运行,但我没有意识到你必须调用所有脚本。我的最终package.json文件如下:

{
  "name": "linkup-paints",
  "version": "1.0.3",
  "description": "NPM for Linkup Paint Supplies website for 2019",
  "main": "index.js",
  "directories": {
    "lib": "lib"
  },
  "scripts": {
    "start": "npm-run-all --parallel browser-sync build-sass watch-sass",
    "browser-sync": "browser-sync start --server --files '**/*.css, **/*.html, **/*.js, !node_modules/**/*' -w --directory --port 7777 --browser \"C:\\Program Files\\Firefox Developer Edition\\firefox.exe\"",
    "build-sass": "node-sass styles/main.scss css/main.css",
    "watch-sass": "node-sass -w styles/main.scss css/main.css"
  },
  "keywords": [
    "linkup",
    "2019"
  ],
  "repository": {},
  "author": "dpDesignz",
  "license": "ISC",
  "devDependencies": {
    "npm-run-all": "^4.1.3",
    "browser-sync": "^2.26.3",
    "node-sass": "^4.9.4"
  },
  "bugs": {
    "url": "http://support.dpdesignz.co"
  },
  "homepage": "http://www.dpdesignz.co"
}
Run Code Online (Sandbox Code Playgroud)

我最终添加了npm-run-all脚本并更改了我的start参数,npm-run-all --parallel browser-sync build-sass watch-sass因为我不需要与run-script-os之前的旧参数进行跨操作系统兼容性。我还将-w( --watch) arg 放入浏览器同步行中,以使创建的.css文件触发同步,因为构建实际上会替换.css文件,而不是默认情况下按照浏览器同步的要求“更改”文件。

sid*_*oth 5

这是我用来使用 node-sass 构建或监视 SCSS 文件的两个 NPM 脚本:

"build-sass": "node-sass src/public/css/main.scss dist/public/css/main.css"
"watch-sass": "node-sass -w src/public/css/main.scss dist/public/css/main.css"
Run Code Online (Sandbox Code Playgroud)

希望这对你有用