0

我购买了一个 HTML5 模板,文件需要用 NodeJS 编译。我没有使用 NodeJS 的经验,并且遇到了错误。我会提供我认为相关的所有内容,但请让我知道还有哪些其他信息可能会有所帮助。

以下是运行 install.bat 时的 NodeJS 结果: npm 结果截图

这是install.bat:

@echo off
echo == Installing Intense ==
echo Step 1: installing gulp-cli@2.3.0 globally
call npm i gulp-cli@2.3.0 -g
echo Step 2: installing project packages
call npm i
echo Step 3: generating a public version of the site
call gulp build::dist
echo Step 4: generating projects for Novi builder
call gulp build::proj
echo Step 5: generating Novi Builder demo projects
call gulp build::demo
echo == Installation completed ==
pause

这是package.json:

{
  "name": "intense",
  "version": "4.15.0",
  "description": "Multipage site template",
  "main": "gulpfile.js",
  "scripts": {
    "express": "node server.js"
  },
  "author": "TemplateMonster",
  "license": "UNLICENSED",
  "devDependencies": {
    "connect-multiparty": "2.2.0",
    "oxyz-build": "1.2.2",
    "oxyz-express": "1.0.2",
    "html-minifier": "4.0.0",
    "html2json": "1.0.2",
    "pretty": "2.0.0"
  }
}

gulpfile.js:

const
    path = require( 'path' ),
    glob = require( 'glob' ),
    gulp = require( 'gulp' );

let
    tmp = {},
    tasks = {};

glob.sync( './dev/*/build.config.js' ).forEach( function ( str ) {
    let
        siteName = path.parse( str ).dir.split( '/' ).pop(),
        siteTasks = require( str );

    for ( let key in siteTasks ) {
        if ( !tmp[ key ] ) tmp[ key ] = {};
        tmp[ key ][ siteName ] = siteTasks[ key ];
    }

    for ( let taskName in tmp ) {
        tasks[ `build::${taskName}` ] = gulp.series( Object.values( tmp[ taskName ] ) );
    }

    for ( let taskName in tmp ) {
        for ( let siteName in tmp[ taskName ] ) {
            tasks[ `build::${taskName}::${siteName}` ] = tmp[ taskName ][siteName];
        }
    }
});

module.exports = tasks;

输出中列出的日志文件非常长,但它以以下结尾:

315 verbose stack Error: spawn bash ENOENT
5315 verbose stack     at Process.ChildProcess._handle.onexit (node:internal/child_process:282:19)
5315 verbose stack     at onErrorNT (node:internal/child_process:480:16)
5315 verbose stack     at processTicksAndRejections (node:internal/process/task_queues:81:21)
5316 verbose pkgid node-sass@4.14.1
5317 verbose cwd C:\Code\IntenseTheme\1519369-1609160745508_58888
5318 verbose Windows_NT 10.0.18363
5319 verbose argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "i"
5320 verbose node v15.11.0
5321 verbose npm  v7.6.2
5322 error code ENOENT
5323 error syscall spawn bash
5324 error path C:\Code\IntenseTheme\1519369-1609160745508_58888\node_modules\node-sass
5325 error errno -4058
5326 error enoent spawn bash ENOENT
5327 error enoent This is related to npm not being able to find a file.
5328 verbose exit -4058

我尝试更新在警告中看到的一些软件包,如下所示:

C:\Code\IntenseTheme\1519369-1609160745508_58888>npm install chokidar@3.5 -g

added 1 package, changed 14 packages, and audited 17 packages in 3s

found 0 vulnerabilities

C:\Code\IntenseTheme\1519369-1609160745508_58888>npm install debug@4.3.1 -g

added 2 packages, and audited 4 packages in 3s

found 0 vulnerabilities

C:\Code\IntenseTheme\1519369-1609160745508_58888>npm install axios@0.21.1 -g

added 2 packages, and audited 4 packages in 3s

found 0 vulnerabilities

但是当我npm i再次尝试时,我得到了完全相同的结果,就好像没有实际升级一样。

更新:

使用 NVM 我切换到节点 14.15.5,现在我在第二步遇到了一个新错误: npm 错误! node-sass@4.14.1 安装:节点脚本/install.js npm ERR! 在 node-sass@4.14.1 安装脚本中失败。

在我能够使用 node-sass 之前,虽然我希望我注意到我当时使用的所有东西的版本(我正在学习。)但是,现在每当我尝试在其中安装任何版本的 node-sass 时都会出现此错误任何文件夹。

这是我当前的版本: npm:'6.14.11',节点:'14.15.5'

4

0 回答 0