【发布时间】:2021-03-18 17:50:29
【问题描述】:
我多次安装node js并重新安装它,清除缓存并尝试一切使其工作,但我无法使用它来编译我的项目中的pug和scss文件。起初我安装了 node_modules 没有任何问题,但是开始编译文件的“npm start”命令将不起作用。我团队中的许多人都毫无问题地使用它,但不知何故,当我遵循相同的命令并正确安装所有东西时,我遇到了这种错误。谁能帮我解决这个问题?我在第 3 天使用相同的终端节点 js 代码,并尝试了我在 google 中找到的所有方法。 (包括使用yarn、重新安装nodejs、一些npm代码清除缓存、强制安装等)。
'use strict';
module.exports = (grunt) => {
grunt.initConfig({
sass : {
options: {
outputStyle: 'expanded',
sourceMap: false
},
dist : {
files: {
'dist/assets/css/main.css' : 'src/styles/template.scss'
}
}
},
pug : {
compile : {
files: {
'dist/index.html': ['src/template/index.pug']
}
}
},
prettify: {
options: {
"indent": 2,
"indent_char": " ",
"indent_scripts": "normal",
"wrap_line_length": 0,
"brace_style": "collapse",
"preserve_newlines": true,
"max_preserve_newlines": 1,
"unformatted": [
"a",
"code",
"pre"
]
},
files: {
src: 'dist/index.html',
dest: 'dist/index.html'
}
},
watch : {
options: {
livereload: true
},
css : {
files: ['src/styles/**/*.scss'],
tasks: ['sass'],
options: {
spawn: false
}
},
html : {
files : ['src/template/**/*.pug'],
tasks : ['pug', 'prettify'],
options: {
spawn: false
}
}
},
express : {
all : {
options : {
port : 1994,
hostname : 'localhost',
bases : ['./dist/'],
livereload : true
}
}
}
});
grunt.registerTask('default', ['watch']);
grunt.loadNpmTasks('grunt-sass');
grunt.loadNpmTasks('grunt-contrib-pug');
grunt.loadNpmTasks('grunt-prettify');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-express');
grunt.registerTask('server', ['express', 'watch']);
}
还有自定义脚本
{
"name": "random name",
"version": "1.0.0",
"description": "Random name",
"main": "Gruntfile.js",
"scripts": {
"start": "npm run open",
"langbuilder": "node langbuilder",
"projectbuilder": "node projectbuilder",
"cronbuilder": "node cronbuilder",
"configbuilder": "node configbuilder",
"open": "concurrently \"grunt server\" \"open http://localhost:1994\""
}
}
完整的错误日志
0 verbose cli [
0 verbose cli 'C:\\Program Files\\nodejs\\node.exe',
0 verbose cli 'C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js',
0 verbose cli 'run',
0 verbose cli 'open'
0 verbose cli ]
1 info using npm@7.6.3
2 info using node@v15.12.0
3 timing config:load:defaults Completed in 1ms
4 timing config:load:file:C:\Program Files\nodejs\node_modules\npm\npmrc Completed in 2ms
5 timing config:load:builtin Completed in 2ms
6 timing config:load:cli Completed in 1ms
7 timing config:load:env Completed in 1ms
8 timing config:load:file:C:\Users\z.metreveli\Desktop\new123\promostarterpack\.npmrc Completed in 0ms
9 timing config:load:project Completed in 0ms
10 timing config:load:file:C:\Users\z.metreveli\.npmrc Completed in 1ms
11 timing config:load:user Completed in 1ms
12 timing config:load:file:C:\Users\z.metreveli\AppData\Roaming\npm\etc\npmrc Completed in 0ms
13 timing config:load:global Completed in 0ms
14 timing config:load:cafile Completed in 0ms
15 timing config:load:validate Completed in 1ms
16 timing config:load:setUserAgent Completed in 0ms
17 timing config:load:setEnvs Completed in 0ms
18 timing config:load Completed in 7ms
19 verbose npm-session 7c4573983650cce7
20 timing npm:load Completed in 17ms
21 timing command:run Completed in 860ms
22 verbose stack Error: command failed
22 verbose stack at ChildProcess.<anonymous> (C:\Program Files\nodejs\node_modules\npm\node_modules\@npmcli\promise-spawn\index.js:64:27)
22 verbose stack at ChildProcess.emit (node:events:369:20)
22 verbose stack at maybeClose (node:internal/child_process:1067:16)
22 verbose stack at Process.ChildProcess._handle.onexit (node:internal/child_process:301:5)
23 verbose pkgid promostarterpack@1.0.0
24 verbose cwd C:\Users\z.metreveli\Desktop\new123\promostarterpack
25 verbose Windows_NT 10.0.19042
26 verbose argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "run" "open"
27 verbose node v15.12.0
28 verbose npm v7.6.3
29 error code 1
30 error path C:\Users\z.metreveli\Desktop\new123\promostarterpack
31 error command failed
32 error command C:\Windows\system32\cmd.exe /d /s /c concurrently "grunt server" "open http://localhost:1994"
33 verbose exit 1
【问题讨论】:
-
请检查错误,它说您的“打开”自定义脚本和 grunt 都并行运行,在项目中添加这两个脚本。
-
可能
open是 macOS 特有的命令,在 Windows 上不存在。 -
您的一个错误是由于拼写错误:而不是
os.tmpDir(),使用os.tmpdir()。