Code Monkey home page Code Monkey logo

ud-basic-webdev-setup's Introduction

IDE 2022 - Tutorial Basic

Bei diesem Repository handelt es sich um meine "Test-/Entwicklungsumgebung" für alle meine YouTube Tutorials. Sie basiert auf Vite und wird in dem Tutorial erklärt. Es handelt sich dabei nicht um eine "perfekte" IDE/Umgebung die ihr für eure Projekte verwenden solltet, sondern um einen Quick-Start für die Arbeit bzw. mitarbeit an den Tutorials von Unleashed Design. Ziel dieses Projektes ist es innerhalb von Sekunden soweit zu seit einem Tutorial folgen zu können.

Befehle

Um den Tutorials zu folgen zum Start einfach:

npm install
npm run dev

eingeben, anschließend solltest du unter http://localhost:3000/ deine Umgebung sehen, sodass direkt mit dem Tutorial gestartet werden kann.

Mitarbeit

Wie bei jedem Programmier-Projekt kommt dieses Projekt auch in die Jahre, gerne kannst du helfen diese Umgebung besser zu gestalten und Änderungen vorschlagen oder Issues schreiben.

Für Fragen oder weitere Informationen schau doch einfach mal auf dem Discord Server vorbei.

ud-basic-webdev-setup's People

Contributors

johannes-schiel avatar micschwarz avatar myownstack avatar tracer1337 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ud-basic-webdev-setup's Issues

Sourcemaps nicht im Production Build erstellen

Vorschlag

Sourcemaps für Javascript werden nicht im Production Build erstellt. Damit ist der Quellcode für den Endnutzer nicht (schwerer) einsehbar.

Umsetzung

Eine mögliche Umsetzung ist hier zu finden.

Typescript Workflow hinzufügen

Es wäre schön einen Typescript Workflow im gulpfile zu haben. Das heißt: Compile, Minify, Testing und eventuell noch weitere Schritte wenn dir was einfällt :) Ich brauche diese Funktionalität für Typescript+ Express API Development

npm run dev

Add exports.dev = dev; in gulpfile.js, line 121.
To support npm run dev.

.scss Support

.scss Dateien werden vom Gulpfile ausgeschlossen. Damit .scss auch unterstützt wird, muss jeweils sass/**/*.sass zu sass/**/*.{sass,scss} geändert werden.

Korrigierte html Kommentare

// Compile .html to minify .html
const html = () => {
// Find HTML
return gulp.src(${src}/*.html)
// Init Plumber
.pipe(plumber())
// Compile HTML -> minified HTML
.pipe(htmlmin({
collapseWhitespace: true,
removeComments: true,
html5: true,
removeEmptyAttributes: true,
removeTagWhitespace: true,
sortAttributes: true,
sortClassName: true
}))
// Write everything to destination folder
.pipe(gulp.dest(${dest}));
};

Schnellere Javascript Builds mit esbuild

Vorschlag

Verwendung von esbuild anstelle von Browserify als Javascript Bundler. Dadurch wird die Kompilierzeit auf ein Minimum reduziert. In einem meiner Projekte verwende ich THREE.js, wodurch die Kompilierzeit mit Browserify bei ~200ms liegt, mit esbuild sind es <10ms (>95% Reduzierung).

Umsetzung

Eine mögliche Umsetzung ist hier zu finden.

Modul-Unterstützung

Zunächst einmal danke für deine tollen Tutorials!

Bin beim Versuch deinem Video zum Thema Echzeit-Statistiken zu folgen leider auf ein kleines Problem gestoßen.
Leider schaffe ich es nicht die benötigenten Module (siehe ca. 22:30) einzubinden.
Hat sich seit her das Handling von Modulen verändert oder ist das momentane Setup der dev-env nicht auf die Verwendung von modules ausgelegt.

npm - fibers nicht mehr kompatibel mit Node.js Version >16

Was passiert genau?

Siehe: https://www.npmjs.com/package/fibers

Update [April 13th, 2021] -- Fibers is not compatible with nodejs v16.0.0 or later. Unfortunately, v8 commit [dacc2fee0f](https://github.com/v8/v8/commit/dacc2fee0f815823782a7e432c79c2a7767a4765) is a breaking change and workarounds are non-trivial.

Reproduktion (Schritte)

...

Mit welchen Feature hast du Probleme?

  • CSS/SASS
  • JavaScript
  • Testing (Jest)
  • TypeScript
  • live Reload
  • Asset export

Error Log or Stackrack

No response

Demo link

/

Umgebungsvariablen an Templates übergeben (zu #28)

Dieses Issue setzt die Implementierung von #28 voraus.

Vorschlag

Zugriff auf Umgebungsvariablen in den Templates. Am besten erklärt an einem praktischen Beispiel:

<a href="https://discord.com/...<%= process.env.DISCORD_BOT_CLIENT_ID  %>">Invite</a>

Hier wird die Client-ID eines Discord Bots aus den Umgebungsvariablen genommen und daraus ein Einladungslink generiert.

Umsetzung

Eine mögliche Umsetzung ist hier zu finden.

Node Modules vulnerabilities behoben

Leider gibt es 10 Vulnerabilities (8 low, 1 high, 1 critical) diese sollten unbedingt behoben werden! Dazu muss die Script Funktion neu geschreiben werden damit Importe von Modulen weiter Funktionieren.

E2E Tests my Cypress

Cypress ist ein dediziertes Tool, das ausschließlich für e2e Tests entwickelt wurde. Ich finde, es passt hier besser hinein als Puppeteer, auch wenn es extra Komplexität mitbringt.
https://www.cypress.io/

Im Zuge dessen bietet es sich für dich auch an, das Tool in einem Video vorzustellen. 🙃

JavaScript Funktionen nach build verschwunden

Guten Abend,

ich habe das Problem, dass wenn ich gewisse Funktionen im Script nur durch Eingabe des Users aufrufen lasse, dass dann das Build Tool meine Funktionen in der ausgegebenen Datei "*.bundle.js" verschluckt bzw. sie für Ihn beim Build unsichtbar sind.
Gibt es da eine Möglichkeit dieses Problem zu beheben, wenn ja welche?

Dankeschön und einen schönen Abend,

-Shipy

Nunjucks

Ich habe vieles in meinen Workflow übernommen, funktioniert super :-)
Seit ich Nunjucks im HTML-Teil mit verwende, muss ich immer 2x speichern damit die Änderung in der .njk-Datei korrekt über die .html-Datei im dest-Ordner über browsersync angezeigt wird.
Wo liegt der Fehler?

// Import everything important
const gulp = require(gulp);
const plumber = require(gulp-plumber);
const rename = require(gulp-rename);
const browserSync = require(browser-sync).create();
const gutil = require(gulp-util);
const sourcemaps = require(gulp-sourcemaps);

// For SASS -> CSS
const sass = require(gulp-sass);
const postcss = require(gulp-postcss);
const autoprefixer = require(autoprefixer);
const cssnano = require(cssnano);
const sassLint = require(gulp-sass-lint);

// HTML
const htmlmin = require(gulp-htmlmin);
const nunjucks = require(gulp-nunjucks);

// JavaScript/TypeScript
const browserify = require(gulp-browserify);
const babel = require(gulp-babel);
const jshint = require(gulp-jshint);
const uglify = require(gulp-uglify);
const concat = require(gulp-concat);

// Define Important Varaibles
const src = ./src;
const dest = ./dest;

// Function for serve the dev server in browser
const serve = (done) => {
browserSync.init({
server: {
baseDir: ${dest}
}
});
done();
};

// Function for reload the Browser
const reload = (done) => {
browserSync.reload();
done();
};

// Compile .html to minify .html
const html = () => {
// Nunjucks -> HTML
gulp.src(${src}/*.njk)
.pipe(nunjucks.compile())
.pipe(rename({ extname: .html }))
.pipe(gulp.dest(${src}));
// Find HTML
return gulp.src(${src}/*.html)
// Init Plumber
.pipe(plumber())
// HTML -> HTMLmin
.pipe(htmlmin({
collapseWhitespace: true,
removeComments: true,
html5: true,
removeEmptyAttributes: true,
removeTagWhitespace: true,
sortAttributes: true
}))
// Write everything to destination folder
.pipe(gulp.dest(${dest}));
};

// Compile SASS into CSS
const css = () => {
// Find SASS
return gulp.src(${src}/sass/**/*.sass)
// Init Plumber
.pipe(plumber())
// Lint SASS
.pipe(sassLint({
options: {
formatter: 'stylish',
},
rules: {
'no-ids': 1,
'final-newline': 0,
'no-mergeable-selectors': 1,
'indentation': 0
}
}))
// Format SASS
.pipe(sassLint.format())
// Start Source Map
.pipe(sourcemaps.init())
// Compile SASS -> CSS
.pipe(sass.sync({
outputStyle: compressed
})).on('error', sass.logError)
// Add Suffix
.pipe(rename({
basename: 'all',
suffix: '.min'
}))
// Add Autoprefixer & cssNano
.pipe(postcss([autoprefixer(), cssnano()]))
// Write Source Map
.pipe(sourcemaps.write(''))
// Write everything to destination folder
.pipe(gulp.dest(${dest}/assets/css))
// Reload Page
.pipe(browserSync.stream());
};

// Compile .js to minify .js
const script = () => {
// Find JavaScript
return gulp.src(${src}/assets/js/**/*.js)
// Init Plumber
.pipe(plumber(((error) => {
gutil.log(error.message);
})))
// Start using source maps
.pipe(sourcemaps.init())
// concat
.pipe(concat('concat.js'))
// Use Babel
.pipe(babel())
// JavaScript Lint
.pipe(jshint())
// Report of jslint
.pipe(jshint.reporter('jshint-stylish'))
// Add browser Support
.pipe(browserify({
insertGlobals: true
}))
// Minify
.pipe(uglify())
// add SUffix
.pipe(rename({
basename: 'all',
suffix: .min
}))
// Write Sourcemap
.pipe(sourcemaps.write(''))
// Write everything to destination folder
.pipe(gulp.dest(${dest}/assets/js))
// Update Browser
.pipe(browserSync.stream());
};

// Function to watch our Changes and refreash page
const watch = () => gulp.watch([${src}/*.njk, ${src}/sass/**/*.sass, ${src}/assets/js/**/*.js], gulp.parallel(html, css, script, reload));

// All Tasks for this Project
const dev = gulp.parallel(html, css, script, serve, watch);

// Just build the project
const build = gulp.series(html, css, script);

// Default function (used when type gulp)
exports.dev = dev;
exports.build = build;
exports.default = build;

Watcher nimmt keine Änderungen wahr

Hi ich habe mir dein Repository mal ausgecheckt. Ich habe gulp noch Line Ending Corrector und Imagemin hinzugefügt.
Dementsprechend sieht mein gulpfile momentan so aus.

// Import everything important
const gulp = require('gulp');
const plumber = require("gulp-plumber");
const rename = require("gulp-rename");
const browserSync = require('browser-sync').create();
const browserify = require('browserify');
const sourcemaps = require('gulp-sourcemaps');
const lineec = require("gulp-line-ending-corrector");

// For SASS -> CSS
const sass = require('gulp-sass');
const postcss = require("gulp-postcss");
const autoprefixer = require("autoprefixer");
const cssnano = require("cssnano");

// HTML
const htmlmin = require('gulp-htmlmin');

// JavaScript/TypeScript
const terser = require('gulp-terser-js');
const source = require('vinyl-source-stream');
const buffer = require('vinyl-buffer');

// Images
const imagemin = require('gulp-imagemin');

// Define Important Variables
const src = './src';
const dest = './dist';

// Function for reload the Browser
const reload = (done) => {
    browserSync.reload();
    done();
};

// Function for serve the dev server in borwsaer
const serve = (done) => {
    browserSync.init({
        server: {
            baseDir: `${dest}`
        }
    });
    done();
};

// Compile sass into css with gulp
const css = () => {
    // Find SASS
    return gulp.src(`${src}/sass/**/*.scss`)
        // Init Plumber
        .pipe(plumber())
        // Start Source Map
        .pipe(sourcemaps.init())
        // Compile SASS -> CSS
        .pipe(sass.sync({ outputStyle: "compressed" })).on('error', sass.logError)
        // add SUffix
        .pipe(rename({ basename: 'main', suffix: ".min" }))
        // Add Autoprefixer & cssNano
        .pipe(postcss([autoprefixer(), cssnano()]))
        // Write Source Map
        .pipe(sourcemaps.write(''))
        // Correct Line Endings to Linux
        .pipe(lineec())
        // Write everything to destination folder
        .pipe(gulp.dest(`${dest}/css`))
        // Reload Page
        .pipe(browserSync.stream());
};

// Compile .html to minify .html
const html = () => {
    // Find SASS
    return gulp.src(`${src}/*.html`)
        // Init Plumber
        .pipe(plumber())
        // Compile HTML -> minified HTML
        .pipe(htmlmin({
            collapseWhitespace: true,
            removeComments: true,
            html5: true,
            removeEmptyAttributes: true,
            removeTagWhitespace: true,
            sortAttributes: true,
            sortClassName: true
        }))
        // Correct Line Endings to Linux
        .pipe(lineec())
        // Write everything to destination folder
        .pipe(gulp.dest(`${dest}`));
};

// Compile .js to minify .js
const script = () => {
    return browserify(`${src}/js/main.js`, {debug: true})
        .transform('babelify', {
            presets: ['babel-preset-env'],
            plugins: ['babel-plugin-transform-runtime']
        }).plugin('tinyify')
        .bundle()
        .pipe(source(`main.bundle.js`))
        .pipe(buffer())
        .pipe(sourcemaps.init({ loadMaps: true }))
        .pipe(terser())
        .pipe(sourcemaps.write('.'))
        // Correct Line Endings to Linux
        .pipe(lineec())
        .pipe(gulp.dest(`${dest}/js`));
};

const imageMinify = () => {
	return gulp.src(`${src}/assets/**`)
		.pipe(imagemin([
			imagemin.mozjpeg({
				progressive: true
			}),
			imagemin.optipng({
				optimizationLevel: 5
			}),
			imagemin.svgo({
				removeViewBox: true
			})
		]))
		.pipe(gulp.dest(`${src}/assets/minified`));
};


// Copy Assets
const assets = () => {
    return gulp.src(`${src}/assets/**`)
        .pipe(gulp.dest(`${dest}/assets`));
};



// Function to watch our Changes and refreash page
const watch = () => gulp.watch(
    [`${src}/*.html`, `${src}/js/**/*.js`, `${src}/sass/**/*.scss`, `${src}/assets/**/*.*`],
    gulp.series(assets, css, script, html, reload));

// All Tasks for this Project
const dev = gulp.series(assets, css, script, html, imageMinify, serve, watch);

// Just Build the Project
const build = gulp.series(css, script, html, assets, imageMinify);

// Default function (used when type gulp)
exports.dev = dev;
exports.build = build;
exports.default = build;

Das Problem ist wenn ich npm run dev benutze werden zwar alle Tasks ausgeführt auch mein imageMinify aber der Watcher nimmt keine Änderungen wahr. Ich hatte das Problem auch schon vorher mit einem eigenen gulp file.

Node Version: 12.18.2
NPM Version: 6.14.8
NPX Version: 6.14.8
Gulp CLI: 2.3.0
Gulp Local: 4.0.2

comfort

Hi Johannes,

Du kannst gern diesen Part in der readme.md ändern

> npm i
...
> npm run dev

zu

npm i
npm run dev

Dadurch hat der Nutzer mehr Komfort, denn z.B. in Webstorm und anderen Jetbrains-Umgebungen kann man im Dokument einen Playbutton sehen und den Code ausführen. Wenn man es so lässt wie jetzt, bekommt man Fehlermeldungen.

Font Awesome Font kopieren

const fonts = () => {
return gulp.src(${src}/fonts/fontawesome-webfont.*)
.pipe(gulp.dest(${dest}/fonts/));
};

Modul-Unterstützung v2

Hallo erstmal & danke für deine Tutorials,

Wenn ich versuche ein Modul zu importieren bekomme ich die Fehlermeldung ( Can't find variable: require ).

Ich habe versucht die FakerJS ins laufen zu bekommen als auch GSAP oder SWIPER.

Wenn ich mir die komprimierte main.min.js anschaue macht er mir aus:

import * as faker from 'faker';

function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var faker=_interopRequireWildcard(require("faker"));function _getRequireWildcardCache(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return _getRequireWildcardCache=function(){return e},e}function _interopRequireWildcard(e){if(e&&e.__esModule)return e;if(null===e||"object"!==_typeof(e)&&"function"!=typeof e)return{default:e};var t=_getRequireWildcardCache();if(t&&t.has(e))return t.get(e);var r={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var i=n?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}return r.default=e,t&&t.set(e,r),r}

.jshintrc hätt ich

Ich hoffe ihr könnt mir helfen !

LG

Template Engine (EJS) für repetetives HTML

Vorschlag

Verwendung von EJS, um Komponenten und ganze Layouts wiederverwenden zu können. Der Quellcode einer Seite kann vor der Kompilierung so aussehen:

src/contact.ejs

<!DOCTYPE html>
<html lang="en">

<%- include("partials/head", { title: "Contact" }) %>

<body>
    <div class="container">
        <%- include("partials/header") %>

        <section id="contact">
            <h4>Contact</h4>
        </section>
    </div>

    <%- include("partials/footer") %>

    <%- include("partials/scripts") %>
</body>

</html>

In dem Beispiel gibt es einen Ordner src/partials, in dem die Komponenten liegen. Eine Komponente kann so aussehen:

src/partials/head.ejs

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="/css/main.min.css">
    <link rel="icon" href="/assets/favicon.ico" />
    <meta name="theme-color" content="#000000" />
    <title>Meine Webseite | <%- title %></title>
</head>

Das vollständige Beispiel ist in diesem Repository zu finden.

Note: Komponenten können auch Parameter entgegennehmen. Siehe im Beispiel <%- title %>

Note: Der EJS Compiler akzeptiert Javascript Variablen als Parameter, auf die in den Templates zugegriffen werden kann.

Umsetzung

Eine mögliche Umsetzung ist hier zu finden.

PHP Task

Hallo,
Es währe super wenn es noch möglich währe einen PHP Task hinzuzufügen.
Ich habe auch schon gesehen das es für das PHP minimieren eine Erweiterung gibt
(https://github.com/cedx/gulp-php-minify) leider kriege ich es nicht hin diese Erweiterung richtig bei gulp zu verwenden. Ich würde mich freuen wenn hier einer einen PHP Task richtig zum laufen bringen könnte.

Browsersync wird nicht beendet

Problem

Wenn ich die Entwicklungsumgebung npm run dev über strg + c schließe, wird der Browsersync Server nicht beendet. Die Umgebung kann nicht wieder gestartet werden, weil der Port belegt ist. Erst wenn der Prozess über den Taskmanager geschlossen wird, ist der Port wieder frei.

Umgebung

Windows 10
[email protected]
[email protected]

node-gyp error - when installing it uses deprecated node-gyp version 3.8

When copying the package.json and installing, i get the error, that gulp-sass could not be build. The error seems to come from node-sass or gulp-sass using node-gyp v3.8 to build, which is to old to build the package. Is there a fix or something to consider before installing to remove this error?

Error Message

npm ERR! code 1
npm ERR! path C:\Users\Anton\node_modules\node-sass
npm ERR! command failed
npm ERR! command C:\WINDOWS\system32\cmd.exe /d /s /c node scripts/build.js
npm ERR! Building: C:\nodejs\node.exe C:\Users\Anton\node_modules\node-gyp\bin\node-gyp.js rebuild --verbose --libsass_ext= --libsass_cflags= --libsass_ldflags= --libsass_library=
npm ERR! gyp info it worked if it ends with ok
npm ERR! gyp verb cli [
npm ERR! gyp verb cli 'C:\nodejs\node.exe',
npm ERR! gyp verb cli 'C:\Users\Anton\node_modules\node-gyp\bin\node-gyp.js',
npm ERR! gyp verb cli 'rebuild',
npm ERR! gyp verb cli '--verbose',
npm ERR! gyp verb cli '--libsass_ext=',
npm ERR! gyp verb cli '--libsass_cflags=',
npm ERR! gyp verb cli '--libsass_ldflags=',
npm ERR! gyp verb cli '--libsass_library='
npm ERR! gyp verb cli ]
npm ERR! gyp info using [email protected]
npm ERR! gyp info using [email protected] | win32 | x64
npm ERR! gyp verb command rebuild []
npm ERR! gyp verb command clean []
npm ERR! gyp verb clean removing "build" directory
npm ERR! gyp verb command configure []
npm ERR! gyp verb check python checking for Python executable "python2" in the PATH
npm ERR! gyp verb which failed Error: not found: python2
npm ERR! gyp verb which failed at getNotFoundError (C:\Users\Anton\node_modules\which\which.js:13:12)
npm ERR! gyp verb which failed at F (C:\Users\Anton\node_modules\which\which.js:68:19)
npm ERR! gyp verb which failed at E (C:\Users\Anton\node_modules\which\which.js:80:29)
npm ERR! gyp verb which failed at C:\Users\Anton\node_modules\which\which.js:89:16
npm ERR! gyp verb which failed at C:\Users\Anton\node_modules\isexe\index.js:42:5
npm ERR! gyp verb which failed at C:\Users\Anton\node_modules\isexe\windows.js:36:5
npm ERR! gyp verb which failed at FSReqCallback.oncomplete (node:fs:200:21)
npm ERR! gyp verb which failed python2 Error: not found: python2
npm ERR! gyp verb which failed at getNotFoundError (C:\Users\Anton\node_modules\which\which.js:13:12)
npm ERR! gyp verb which failed at F (C:\Users\Anton\node_modules\which\which.js:68:19)
npm ERR! gyp verb which failed at E (C:\Users\Anton\node_modules\which\which.js:80:29)
npm ERR! gyp verb which failed at C:\Users\Anton\node_modules\which\which.js:89:16
npm ERR! gyp verb which failed at C:\Users\Anton\node_modules\isexe\index.js:42:5
npm ERR! gyp verb which failed at C:\Users\Anton\node_modules\isexe\windows.js:36:5
npm ERR! gyp verb which failed at FSReqCallback.oncomplete (node:fs:200:21) {
npm ERR! gyp verb which failed code: 'ENOENT'
npm ERR! gyp verb which failed }
npm ERR! gyp verb check python checking for Python executable "python" in the PATH
npm ERR! gyp verb which succeeded python C:\Python39\python.EXE
npm ERR! gyp ERR! configure error
npm ERR! gyp ERR! stack Error: Command failed: C:\Python39\python.EXE -c import sys; print "%s.%s.%s" % sys.version_info[:3];
npm ERR! gyp ERR! stack File "", line 1
npm ERR! gyp ERR! stack import sys; print "%s.%s.%s" % sys.version_info[:3];
npm ERR! gyp ERR! stack ^
npm ERR! gyp ERR! stack SyntaxError: invalid syntax
npm ERR! gyp ERR! stack
npm ERR! gyp ERR! stack at ChildProcess.exithandler (node:child_process:326:12)
npm ERR! gyp ERR! stack at ChildProcess.emit (node:events:378:20)
npm ERR! gyp ERR! stack at maybeClose (node:internal/child_process:1067:16)
npm ERR! gyp ERR! stack at Process.ChildProcess._handle.onexit (node:internal/child_process:301:5)
npm ERR! gyp ERR! System Windows_NT 10.0.19042
npm ERR! gyp ERR! command "C:\nodejs\node.exe" "C:\Users\Anton\node_modules\node-gyp\bin\node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library="
npm ERR! gyp ERR! cwd C:\Users\Anton\node_modules\node-sass
npm ERR! gyp ERR! node -v v15.11.0
npm ERR! gyp ERR! node-gyp -v v3.8.0
npm ERR! gyp ERR! not ok
npm ERR! Build failed with error code: 1

npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\Anton\AppData\Local\npm-cache_logs\2021-03-18T08_19_57_091Z-debug.log

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.