微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

NPM PUG 生成 HTML 文件时出错 - “这与 npm 无法找到文件有关”

如何解决NPM PUG 生成 HTML 文件时出错 - “这与 npm 无法找到文件有关”

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

这是我运行 install.bat 时的 NodeJS 结果:

screenshot of npm results

这是 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 切换到 Node 14.15.5,现在我在第二步遇到一个错误

npm ERR! node-sass@4.14.1 install: node scripts/install.js npm ERR! Failed at the node-sass@4.14.1 install script.

在我能够使用 node-sass 之前,尽管我希望我记下我当时使用的所有版本的所有版本(我正在学习。)但是,现在每当我尝试安装任何版本的 node 时都会收到此错误-sass 在任何文件夹中。

这是我当前的版本:

npm: '6.14.11',node: '14.15.5'

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?