สคริปต์เริ่มหายไปผิดพลาดเมื่อเริ่ม npm


267

ฉันได้รับข้อผิดพลาดนี้เมื่อพยายามดีบักแอปพลิเคชันโหนดโดยใช้คำสั่ง npm start

ข้อผิดพลาด:

npm ข้อผิดพลาด! Windows_NT 6.3.9600 npm ข้อผิดพลาด! argv "C: \ Program Files \ nodejs \\ node.exe" "C: \ Program Files \ nodejs \ node_modules \ npm \ bin \ npm-cli.js" "เริ่มต้น" npm ERR! โหนด v0.12.7 npm ข้อผิดพลาด! npm v2.11.3

npm ข้อผิดพลาด! สคริปต์ที่ขาดหายไป: เริ่ม npm ERR! npm ข้อผิดพลาด! หากคุณต้องการความช่วยเหลือคุณสามารถรายงานข้อผิดพลาดนี้ได้ที่: npm ERR! https://github.com/npm/npm/issues npm ERR! โปรดรวมไฟล์ต่อไปนี้พร้อมกับคำขอการสนับสนุน: npm ERR! C: \ Users \ andrmoll.NORTHAMERICA \ Documents \ GitHub \ SVIChallenge \ NPM-debug.log

จากไฟล์ debug:

verbose stack ข้อผิดพลาด: ไม่มีสคริปต์: เริ่มต้น

4 verbose stack ที่รัน (C: \ Program Files \ nodejs \ node_modules \ npm \ lib \ run-script.js: 142: 19)

4 verbose stack ที่ C: \ Program Files \ nodejs \ node_modules \ npm \ lib \ run-script.js: 58: 5

4 verbose stack ที่ C: \ Program Files \ nodejs \ node_modules \ npm \ node_modules \ read-package-json \ read-json.js: 345: 5

4 verbose stack ที่ checkBinReferences_ (C: \ Program Files \ nodejs \ node_modules \ npm \ node_modules \ read-package-json \ read-json.js: 309: 45)

4 verbose stack ที่สุดท้าย (C: \ Program Files \ nodejs \ node_modules \ npm \ node_modules \ read-package-json \ read-json.js: 343: 3)

4 verbose stack ในตอนนั้น (C: \ Program Files \ nodejs \ node_modules \ npm \ node_modules \ read-package-json \ read-json.js: 113: 5)

4 verbose stack ที่ C: \ Program Files \ nodejs \ node_modules \ npm \ node_modules \ read-package-json \ read-json.js: 300: 12

4 verbose stack ที่ evalmachine:334:14

4 verbose stack ที่ C: \ Program Files \ nodejs \ node_modules \ npm \ node_modules \ graceful-fs \ graceful-fs.js: 102: 5

4 verbose stack ที่ FSReqWrap.oncomplete (evalmachine.:95:15)


4
คุณมีstartสคริปต์ที่กำหนดไว้ในpackage.jsonไฟล์ของคุณหรือไม่
Robbie

คำตอบ:


381

ดูเหมือนว่าคุณอาจไม่ได้กำหนดstartสคริปต์ไว้ในpackage.jsonไฟล์ของคุณหรือโครงการของคุณไม่มีserver.jsไฟล์

หากมีไฟล์ server.js ในรูทของแพ็กเกจของคุณดังนั้น npm จะใช้คำสั่งเริ่มต้นไปที่ node server.js

https://docs.npmjs.com/misc/scripts#default-values

คุณสามารถเปลี่ยนชื่อสคริปต์แอปพลิเคชันของคุณเป็นserver.jsหรือเพิ่มสิ่งต่อไปนี้เป็นของคุณpackage.json

"scripts": {
    "start": "node your-script.js"
}

หรือ ... คุณสามารถเรียกใช้node your-script.jsโดยตรง


15
ฉันดิ้นรนที่จะเข้าใจสิ่งที่คุณจำเป็นต้องมีstartเมื่อคุณมีmain?
วาล

8
@Val mainเป็นจุดเริ่มต้นที่ลงในโมดูลเมื่อคุณใช้require('your-module')เพื่อรวมไว้ในโครงการอื่น - docs.npmjs.com/files/package.json#main scripts.startเป็นสคริปต์ที่จะดำเนินการโดย NPM npm startเมื่อคุณพิมพ์
Robbie

ไม่ชัดเจนว่าทำไมnpm initไม่ถามเกี่ยวกับสคริปต์เริ่มต้น หรืออย่างน้อยก็ไม่ได้ใช้mainเป็นสคริปต์เริ่มต้น
สิบเอ็ด

ไม่จำเป็นต้องทำอะไรอีกเพียงเพิ่ม "สคริปต์": {"prestart": "npm install", "start": "http-server -a localhost -p 8000 -c-1"},
SantoshK

ในกรณีของฉันมันใช้งานได้ดี .. "สคริปต์": {"ทดสอบ": "echo \" ข้อผิดพลาด: ไม่มีการทดสอบที่ระบุ \ "&& ออก 1", "เริ่มต้น": "พัสดุดัชนี.html", "สร้าง": "พัสดุ build --public-url. index.html "},
Udit Sharma

41

ข้อผิดพลาดนี้จะเกิดขึ้นเช่นกันหากคุณเพิ่มคีย์ "script" ตัวที่สองในไฟล์ package.json หากคุณเพิ่งปล่อยให้ "script" หนึ่งคีย์ใน package.json ข้อผิดพลาดจะหายไป


2
คำตอบนี้อาจไม่ใช่คำตอบที่แน่นอน แต่ก็ช่วยให้ฉันค้นหาสาเหตุที่npm startใช้งานไม่ได้
Obromios

2
นี่คือการตอบสนองที่แน่นอน หากไฟล์ package.json ของคุณมีสองรายการสำหรับสคริปต์ไฟล์นั้นจะเลือกรายการที่สองและไม่สนใจสิ่งที่คุณจดไว้ในรายการแรก และคุณจะได้รับข้อความแสดงข้อผิดพลาดในคำถาม
JeffreyHammansson

30

ในกรณีของผมมันก็ไม่ได้ทำงานเพราะผมใช้สองครั้ง"scripts" หลังจากรวม - มันก็โอเค

"scripts": {
  "test": "make test",
  "start": "node index.js"
}

index.js เป็นไฟล์จริงหรือไม่ หรือสิ่งที่เราต้องสร้าง
tomsmithweb

@tomsmithweb อย่างที่ฉันจำได้ - มันเป็นไฟล์ที่ฉันมีอยู่
ДмитрийДорогонов

6

กรุณาใช้บรรทัดด้านล่างของรหัสในวัตถุสคริปต์ซึ่งมีอยู่ใน package.json

"scripts": {
    "start": "webpack-dev-server --hot"
}

สำหรับฉันมันใช้ได้ดีอย่างสมบูรณ์


1
ไม่ได้ผลสำหรับฉัน คุณยังใช้อยู่$ npm run serveหรือ
ตัวแทน Zebra

2

ตรวจสอบไฟล์ package.json ที่มีคุณสมบัติ "สคริปต์" อยู่หรือไม่ ถ้าไม่อัปเดตคุณสมบัติสคริปต์เช่นนี้

{
  "name": "csvjson",
  "version": "1.0.0",
  "description": "upload csv to json and insert it into MongoDB for a single colletion",
  "scripts": {
    "start": "node csvjson.js"
  },
  "dependencies": {
    "csvjson": "^4.3.4",
    "fs": "^0.0.1-security",
    "mongodb": "^2.2.31"
  },
  "devDependencies": {},
  "repository": {
    "type": "git",
    "url": "git+https://github.com/giturl.git"
  },
  "keywords": [
    "csv",
    "json",
    "mongodb",
    "nodejs",
    "collection",
    "import",
    "export"
  ],
  "author": "karthikeyan.a",
  "license": "ISC",
  "bugs": {
    "url": "https://github.com/homepage/issues"
  },
  "homepage": "https://github.com/homepage#readme"
}

2

หากคุณใช้ babelify และเฝ้าดูให้ไปที่:

package.json

และเพิ่มใน "สคริปต์":

"scripts": {
    "start": "watchify the-path-to-your-source-jsx-file -v -t [ babelify --presets [ react ] ] -o the-path-to-your-output-js-file"
}

ตัวอย่างจะเป็น:

"scripts": {
    "start": "watchify src/main.jsx -v -t [ babelify --presets [ react ] ] -o public/js/main.js"
}

ขอบคุณ Mark Mark จาก DevSlopes


2

ในกรณีของฉันหากเป็นโครงการตอบโต้คุณสามารถลองอัปเกรด npm แล้วอัปเกรด react-cli

npm -g install npm@version
npm install -g create-react-app

จากนั้น create-react-app my_app ขอบคุณงานนี้
ugali soft


1

ควรหลีกเลี่ยงการใช้เวอร์ชัน npm ที่ไม่เสถียร

ผมสังเกตสิ่งหนึ่งที่เป็นรุ่น NPM ปัญหาตาม NPM เวอร์ชัน 4.6.1 เป็นมีเสถียรภาพ แต่ 5.x จะไม่เสถียรเพราะpackage.json จะถูกกำหนดค่าอย่างสมบูรณ์ขณะที่การสร้างที่มีแม่แบบเริ่มต้นถ้าเป็นรุ่นที่มีเสถียรภาพและเพื่อให้เราด้วยตนเอง Don' ไม่จำเป็นต้องเพิ่มสคริปต์

ฉันได้รับปัญหาด้านล่างเมื่อวันที่ 5 npm ดังนั้นฉันจึงลดระดับเป็น npm 4.6.1 จากนั้นก็ใช้งานได้สำหรับฉัน


ข้อผิดพลาด: ยังไม่รองรับ npm 5


ดูเหมือนว่าคุณกำลังใช้ npm 5 ซึ่งเพิ่งเปิดตัว

สร้างแอป Native React ยังไม่สามารถใช้งานได้กับ npm 5 แต่น่าเสียดายที่ เราแนะนำให้ใช้ npm 4 หรือไหมพรมจนกว่าข้อบกพร่องบางอย่างจะได้รับการแก้ไข

คุณสามารถติดตามปัญหาที่ทราบด้วย npm 5 ได้ที่: https://github.com/npm/npm/issues/16991


Devas-MacBook-Air: SampleTestApp deva $ npm เริ่ม npm ERR! สคริปต์ที่ขาดหายไป: เริ่มต้น


"รุ่นที่ไม่เสถียร"
Sv443

1

อีกเหตุผลที่เป็นไปได้: คุณกำลังใช้ npm เมื่อโครงการของคุณเริ่มต้นด้วยเส้นด้าย (ฉันทำสิ่งนี้ด้วยตัวเอง) ดังนั้นมันจะเป็นแทนyarn startnpm start


1

การติดตั้ง create-react-app ทั่วโลกไม่ได้รับการสนับสนุน แทนที่จะถอนการติดตั้งแพคเกจ create-react-app ที่ติดตั้งทั่วโลกโดยทำดังนี้: npm uninstall -g create-react-app (คุณอาจต้องลบโฟลเดอร์แพ็คเกจด้วยตนเองหากคำสั่งนี้ใช้ไม่ได้สำหรับคุณผู้ใช้บางคนรายงานว่าต้องลบโฟลเดอร์ ด้วยตนเอง)

จากนั้นคุณสามารถเรียกใช้ npx create-react-app my-app เพื่อสร้างแอปตอบโต้อีกครั้ง

อ้างอิง: https://github.com/facebook/create-react-app/issues/8086


0

ตรวจสอบให้แน่ใจว่าพอร์ตเปิดอยู่

var app = express();
app.set('port', (process.env.PORT || 5000));

BLAL BLA BLA และท้ายที่สุดคุณมีสิ่งนี้

app.listen(app.get('port'), function() {
    console.log("Node app is running at localhost:" + app.get('port'))
});

ยังเป็น newbee ใน node js แต่สิ่งนี้ทำให้เกิดสิ่งนี้มากกว่าเดิม


0

ลองดูที่ของคุณลูกค้า / package.json คุณต้องมีสคริปต์เหล่านี้

"scripts": {
  "start": "react-scripts start",
  "build": "react-scripts build",
  "test": "react-scripts test --env=jsdom",
  "eject": "react-scripts eject"
}

0

คุณอาจมีการติดตั้ง npm แบบเก่า (ส่วนกลาง) ซึ่งเป็นสาเหตุของปัญหา ตั้งแต่ 12/19 น. ไม่สนับสนุนการติดตั้งทั่วโลก

ก่อนอื่นให้ถอนการติดตั้งแพ็คเกจโดยใช้:
npm uninstall -g create-react-app

ผู้ใช้ osx / Linux บางคนอาจจำเป็นต้องลบ npm เก่าโดยใช้:
rm -rf /usr/local/bin/create-react-app

นี่เป็นวิธีเดียวที่ได้รับการสนับสนุนสำหรับการสร้างโครงการ:
npx create-react-app my-app

ในที่สุดคุณสามารถเรียกใช้:
npm start


-1
"scripts": {
  "prestart": "npm install",
  "start": "http-server -a localhost -p 8000 -c-1"
}

เพิ่มข้อมูลโค้ดนี้ในpackage.jsonของคุณทั้งนี้ขึ้นอยู่กับการกำหนดค่าของคุณเอง


-1

ฉันมีปัญหาเดียวกัน ฉันพยายามเขียนโค้ดในไฟล์ package.json ดังต่อไปนี้

    "scripts": {
    "start": "<your-script-file>.js",
    "test": "echo \"Error: no test specified\" && exit 1"
  },

-2

ฉันแก้ไขปัญหาของฉันแล้ว ไม่ใช่ข้อผิดพลาด NPM ที่เกี่ยวข้องกับพฤติกรรมของพร็อกซี

หากคุณอยู่หลัง proxy

MAC
 1.  Goto System Preference (gears icon on your mac)
 2.  click your network
 3.  click advanced
 4.  click proxy
 5.  check excludes simple hostnames
 6.  add this line below (Bypass Proxy Settings...) "localhost, localhost:8080"

refer to the npm echo: "Project is running at http://localhost:8080/"

Windows
 1.  Goto your browser Proxy Settings (google it)
 2.  check Bypass local address
 3.  add this line below "localhost, localhost:8080"
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.