我购买了一个 HTML5 模板,文件需要用 NodeJS 编译。我没有使用 NodeJS 的经验,并且遇到了错误。我会提供我认为相关的所有内容,但请让我知道还有哪些其他信息可能会有所帮助。
以下是运行 install.bat 时的 NodeJS 结果:
这是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,现在我在第二步遇到了一个新错误:
在我能够使用 node-sass 之前,虽然我希望我注意到我当时使用的所有东西的版本(我正在学习。)但是,现在每当我尝试在其中安装任何版本的 node-sass 时都会出现此错误任何文件夹。