You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何在Alpine Linux中执行npm run命令失败?

问题描述

我尝试执行package.json中定义的npm run test和npm run server命令,但两个命令均执行失败,报错显示npm无法识别语法。以下是相关信息:

package.json的scripts配置

"scripts": {
  "server": "app/server.js",
  "build": "npm run test && npm run build server",
  "test": "test/default.js"
},

说明:app/server.js是tsc编译TypeScript生成的文件,编译无警告;test/default.js是纯手写JavaScript文件。

执行npm run server的报错

npm run server

> my-project@1.0.0 server
> app/server.js

app/server.js: line 1: use strict: not found
app/server.js: line 2: exports.__esModule: not found
app/server.js: line 3: syntax error: unexpected "("

执行npm run test的报错

npm run test                                                                     
> my-project@1.0.0 test
> test/default.js

test/default.js: line 1: syntax error: unexpected "("

相关代码片段

test/default.js前7行

const request = require('supertest');
const chai = require('chai');
const app = require('./server');

const expect = chai.expect;

describe('GET /vehicles/:id', () => {

app/server.js前10行

"use strict";
exports.__esModule = true;
var express_1 = require("express");
var body_parser_1 = require("body-parser");
var pg_1 = require("pg");

// Create a new Express app
var app = (0, express_1["default"])();
// Parse JSON bodies
app.use(body_parser_1["default"].json())

环境信息

  • npm 9.2.0,Node.js 18.12.1
  • tsconfig.json设置为使用es2020
  • npm配置:
    globalignorefile = "/etc/npmignore"
    prefix = "/usr/local"
    python = "/usr/bin/python3"
    
    ignore-scripts = false
    script-shell = "/bin/zsh"
    
  • 已执行npm install,代码检查工具无问题
  • 在Docker、Manjaro等多个环境下问题复现
  • 此前使用Deno,对Node.js运行JS的方式不太熟悉

解决方案

问题出在npm脚本的写法上:你直接指定了.js文件路径,没有调用Node.js解释器来执行它。因为你的npm配置中script-shell是/bin/zsh,zsh会尝试把JS文件当作shell脚本来解析,这自然会触发语法错误。

修改package.json的scripts配置,在每个.js文件前加上node命令即可:

"scripts": {
  "server": "node app/server.js",
  "build": "npm run test && npm run build server",
  "test": "node test/default.js"
},

修改后重新执行npm run server和npm run test,问题即可解决。


内容的提问来源于stack exchange,提问作者olithad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 12:15:31