执行此操作时,yarn install我收到此错误,但其他项目没有问题,也使用 Brew 安装节点。请注意我还应该尝试什么,有什么建议吗?
error */node_modules/node-sass: Command failed.
Exit code: 1
Command: node scripts/build.js
Arguments:
Directory: */node_modules/node-sass
Output:
Building: /opt/homebrew/Cellar/node@14/14.18.1/bin/node */node_modules/node-gyp/bin/node-gyp.js rebuild --verbose --libsass_ext= --libsass_cflags= --libsass_ldflags= --libsass_library=
gyp info it worked if it ends with ok
gyp verb cli [
gyp verb cli '/opt/homebrew/Cellar/node@14/14.18.1/bin/node',
gyp verb cli '*/node_modules/node-gyp/bin/node-gyp.js',
gyp verb cli 'rebuild',
gyp verb cli '--verbose',
gyp verb cli '--libsass_ext=',
gyp verb cli '--libsass_cflags=',
gyp verb cli '--libsass_ldflags=',
gyp verb cli '--libsass_library='
gyp verb cli ]
gyp info …Run Code Online (Sandbox Code Playgroud) 突然在我的一个jenkins环境中构建已经开始失败,而在本地机器上它似乎工作正常,因为我安装了python,
从日志中我能够检测到问题是内部依赖,即来自node-sass v3.8.0的node-gyp v3.5.0,当我通过访问这个关于node- gyp的研究并发现需要安装Python的先决条件时.
所以我的问题是我可以安装什么版本的node-sass来绕过这个或者是否有更好的解决方案,因为我的构建在今天早上运行正常,在同一环境中.
节点v5.10.1
错误日志
gyp verb check python checking for Python executable "python2" in the PATH
gyp verb `which` failed Error: not found: python2
gyp verb `which` failed at getNotFoundError (C:\Program Files (x86)\Jenkins\jobs\NdbSite-hot-fix-Manual-PreBuild\workspace\src\NdbSite.UI\node_modules\which\which.js:13:12)
gyp verb `which` failed at F (C:\Program Files (x86)\Jenkins\jobs\NdbSite-hot-fix-Manual-PreBuild\workspace\src\NdbSite.UI\node_modules\which\which.js:68:19)
gyp verb `which` failed at E (C:\Program Files (x86)\Jenkins\jobs\NdbSite-hot-fix-Manual-PreBuild\workspace\src\NdbSite.UI\node_modules\which\which.js:80:29)
gyp verb `which` failed at C:\Program Files (x86)\Jenkins\jobs\NdbSite-hot-fix-Manual-PreBuild\workspace\src\NdbSite.UI\node_modules\which\which.js:89:16
gyp verb `which` failed at C:\Program Files (x86)\Jenkins\jobs\NdbSite-hot-fix-Manual-PreBuild\workspace\src\NdbSite.UI\node_modules\isexe\index.js:44:5
gyp verb `which` failed …Run Code Online (Sandbox Code Playgroud) 我在我的NodeJS项目中使用SCSS并让我的脚本使用以下命令将所有单独的SCSS文件转换为单个CSS文件
node-sass -w public/css/scss/style.scss public/css/style.css
Run Code Online (Sandbox Code Playgroud)
我唯一的问题是我也希望缩小CSS文件.这可能与Node-sass一起使用吗?文档说有一个"紧凑"的选项,但是当我尝试时它似乎不起作用
node-sass -w compact public/css/scss/style.scss public/css/style.css
Run Code Online (Sandbox Code Playgroud)
预先感谢您的任何帮助.
所以,在用于npm install node-sass我的reactjs项目之前我已经使用过sass。我现在正在做一个新项目,想再次使用 sass。使用相同的语法npm install node-sass来安装它,我继续得到
./src/components/Main.scss (./node_modules/css-loader??ref--6-oneOf-5-1!./node_modules/postcss-loader/src??postcss!./node_modules/react-scripts/node_modules/sass-loader/lib/loader.js??ref--6-oneOf-5-3!./src/components/Main.scss)
Error: Node Sass version 8.0.0 is incompatible with ^4.0.0.
Run Code Online (Sandbox Code Playgroud)
或者
to import sass files, you first need to install node-sass. run `npm install node-sass` or `yarn add node-sass` inside your workspace
...
...
Run Code Online (Sandbox Code Playgroud)
我按照说明使用这些语法从链接npmjs sass-lang安装了 sass
brew install sass/sass/sass
Run Code Online (Sandbox Code Playgroud)
npm install -g sass
Run Code Online (Sandbox Code Playgroud)
但我仍然遇到我之前提到的错误。
我尝试删除节点模块文件夹、package-lock.json 并重新安装节点模块。那仍然没有修复错误。另外,我还关注了其他人如何修复 Node Sass 版本 5.0.0||6.0.0|| 7.0.0 不兼容问题但这并没有解决我的问题。
我现在正在寻求帮助。
我正在使用node.js进行开发,而不是编写css而是想编写每次刷新页面时自动编译的SCSS文件.
使用NodeJS,Express和node-sass时,如何让SASS文件自动编译.
在我正在使用的应用程序中,我必须在客户端上呈现之前动态编译SASS(缓存系统即将到来,不用担心).目前我正在使用node-sass,一切都很好.
这是我到目前为止所做的工作.为简洁起见,已删除其他项目特定代码:
var sass = require('node-sass'),
autoprefixer = require('autoprefixer-core'),
vars = require('postcss-simple-vars'),
postcss = require('postcss'),
function compileCSS() {
var result = sass.renderSync({
file: 'path/to/style.scss'
});
return postcss([autoprefixer]).process(result.css.toString()).css;
}
Run Code Online (Sandbox Code Playgroud)
皱纹是现在我需要从Node传递动态数据并将其编译为普通的SASS变量.最初我尝试使用PostCSS,因为我注意到它可以做变量注入.不幸的是,这不起作用.PostCSS在编译阶段开始,在这一点上惨败.
接下来,我尝试使用下划线模板尝试使用node-sass覆盖' importer():
var result = sass.renderSync({
file: 'path/to/style.scss',
importer: function(url, prev, done) {
var content = fs.readFileSync(partial_path),
partial = _.template(content.toString());
return {
contents: partial({ test: 'test' })
};
}
});
Run Code Online (Sandbox Code Playgroud)
这导致以下错误:
Error: error reading values after :
Run Code Online (Sandbox Code Playgroud)
显然,SASS不喜欢下划线的变量语法.
如何从我的Node应用程序中将动态变量传递给SASS?
在各种 React 文档中,我看到它被添加为 prod 依赖项,但我不明白为什么。它不应该是 devDependy,因为 SASS 只在开发过程中被编译,当推送到 prod 时,你实际上是在推送编译后的 CSS 文件吗?
当创建与CLI(v3.7.0)的新项目中,有之间进行选择的选项dart-sass或node-sass编译器。
它们之间如何进行比较,以比Vue docs中声明的更具体?
Sass性能技巧
请注意,使用Dart Sass时,由于异步回调的开销,默认情况下,同步编译的速度是异步编译速度的两倍。为了避免这种开销,您可以使用Fiber包从同步代码路径中调用异步导入程序。为此,只需将光纤安装为项目依赖项即可:
npm install -D fibers还请注意,由于它是本机模块,因此在操作系统和构建环境上可能存在兼容性问题。在这种情况下,请运行
npm uninstall -D fibers以解决问题。
? Pick a CSS pre-processor (PostCSS, Autoprefixer and CSS Modules are supported by default): (Use arrow keys)
? Sass/SCSS (with dart-sass)
Sass/SCSS (with node-sass)
Less
Stylus
Run Code Online (Sandbox Code Playgroud) 在“npm install”期间,我一直在用 node-sass 做各种愚蠢的事情,包括但不限于:
这在企业环境中造成了问题,我必须在 Jenkins 上编译我的项目,其中 NPM 库必须从企业服务器上的 npm 注册表克隆中提取,并且只有该特定项目的严格必需品在 docker 上可用,因此:
我决定我已经受够了 node-sass 的恶作剧,所以我尝试了建议的“dart-sass”,因为这个概念似乎是完全兼容角度的,旨在解决 node-sass 的大部分问题: https://sass-lang.com/dart-sass
我尝试删除 node-sass 并将 dart-sass 代替:
npm remove node-sass
npm install dart-sass
ng serve
Run Code Online (Sandbox Code Playgroud)
但这会导致:
Module build failed (from ./node_modules/sass-loader/lib/loader.js):
Error: Cannot find module 'node-sass'
Run Code Online (Sandbox Code Playgroud)
对于项目中的每个组件。
为什么它仍在寻找 node-sass?
这是我的 package.json :
{
"name": "web.ui",
"version": "0.0.0",
"license": "MIT",
"scripts": {
"ng": "ng",
"start": "ng serve --aot=false --proxy-config proxy.json",
"build": "ng b …Run Code Online (Sandbox Code Playgroud) 最近我将 Angular 应用程序更新到版本 14,升级后,我收到以下错误。错误如下
\n./src/assets/vendor/default/styles.scss - Error: Module build failed (from ./node_modules/sass-loader/dist/cjs.js):\nSassError: Can't find stylesheet to import.\n \xe2\x95\xb7\n4 \xe2\x94\x82 @import "~src/vendor/libs/ng2-nouislider/mixins";\nRun Code Online (Sandbox Code Playgroud)\n有人可以帮助解决这个问题吗?
\n提前致谢
\n