Angular 2 npm start 报错

本文详细解析了Angular应用启动过程中常见的问题,特别是关于文件路径配置、模块引导设置等导致的404错误及缺失@NgModule.bootstrap组件的问题,并给出了具体的解决办法。

首先, index.html 和styles.css是和app目录平级的, 不要扔到里面去, 否则会404

确认配置文件齐全, 路径都正确之后 npm start

What?! 照着快速起步也会弄错吗? 人品问题吗?

很多人可能会看到npm报错:

$ npm start

> angular-quickstart@1.0.0 start F:\work\angular_quickstart\angular
> tsc && concurrently "tsc -w" "lite-server"

[1] Did not detect a `bs-config.json` or `bs-config.js` override file. Using lite-server defaults...
[1] ** browser-sync config **
[1] { injectChanges: false,
[1]   files: [ './**/*.{html,htm,css,js}' ],
[1]   watchOptions: { ignored: 'node_modules' },
[1]   server: { baseDir: './', middleware: [ [Function], [Function] ] } }
[0] 14:36:11 - Compilation complete. Watching for file changes.
[1] [BS] Access URLs:
[1]  --------------------------------------
[1]        Local: http://localhost:3000
[1]     External: http://192.168.155.1:3000
[1]  --------------------------------------
[1]           UI: http://localhost:3001
[1]  UI External: http://192.168.155.1:3001
[1]  --------------------------------------
[1] [BS] Serving files from: ./
[1] [BS] Watching files...
[1] 16.11.17 14:36:15 404 GET /index.html
[1] 16.11.17 14:36:15 404 GET /favicon.ico

除了404是上面说的文件摆放路径错误意外, 其实不需要care它的, 和正常启动应用无关, 属于npm版本相关问题, 此处不赘述。

重要的是console里面的log:

The module AppModule was bootstrapped, but it does not declare "@NgModule.bootstrap" components nor a "ngDoBootstrap" method. Please define one of these.

  这句还是make sense的, 意思是

初始化的时候用的platform.bootstrapModule(), 却没有把bootstrap引用为[ AppComponent ]

 

问题就出在这里 

这里是应用的入口点。

由于 QuickStart 是运行在浏览器中的 Web 应用,所以根模块需要从 @angular/platform-browser 中导入 BrowserModule 并添加到 imports 数组中。

这是要让最小的应用在浏览器中运行时,对 Angular 的最低需求。

QuickStart 应用不做别的,也就先不需要其它模块。在真实的应用中,我们可能还得导入 FormsModule 、 RouterModule 和 HttpModule 。这些会在 英雄指南教程 中引入。

官方文档上给的最低需求,低到连它自己给出的index.html都显示不出来了...

我老眼昏花只用了最低配置, 而没有看到就在下面几行它其实又贴了一次这个文件:

这才是    要用的!

You see, 改完这个文件以后应该就不会报错了, 最后的console应该变成这样:

 

转载于:https://www.cnblogs.com/haimingpro/p/6073929.html

<think>我们正在解决报错npm ERR! Missing script: "serve" 根据引用[1][2][3][4],这个错误通常是因为在package.json文件中没有定义名为"serve"的脚本,或者用户运行了错误的命令。 解决步骤: 1. 确认当前目录是否正确(是否在项目根目录,且包含package.json文件)。 2. 检查package.json文件中的"scripts"字段是否包含"serve"脚本。 3. 如果没有,则根据项目框架(如Vue CLI、React等)确定正确的启动命令,可能是"start"、"dev"等。 4. 如果有,则检查运行命令是否正确(注意拼写,如serve而不是server)。 详细步骤: 步骤1:确认项目目录和文件 - 打开终端,确保当前工作目录是项目的根目录(即包含package.json文件的目录)。 - 可以使用`ls`(Mac/Linux)或`dir`(Windows)查看当前目录下的文件,确认有package.json。 步骤2:检查package.json中的scripts - 用文本编辑器打开package.json文件,找到"scripts"部分。 - 查看是否有名为"serve"的脚本。例如,Vue CLI创建的项目通常有: "scripts": { "serve": "vue-cli-service serve", ... } - 如果没有"serve",则看是否有其他启动脚本,如"start"、"dev"等。 步骤3:根据项目框架确定正确的命令 - Vue项目:通常使用`npm run serve`或`vue-cli-service serve`,但若项目是通过Vite创建,则可能是`npm run dev`。 - React项目(使用create-react-app):通常使用`npm start`。 - Nuxt.js:可能使用`npm run dev`。 - 其他:参考项目文档或查看package.json中的可用脚本。 步骤4:运行正确的命令 - 如果scripts中有"serve",则运行`npm run serve`。 - 如果没有"serve",但有"start",则运行`npm start`(因为"start"是特殊脚本,可以省略run)。 - 如果有"dev",则运行`npm run dev`。 步骤5:如果问题仍然存在 - 检查是否在正确的项目目录下运行命令(比如项目有两个前端,可能进错了目录)。 - 检查终端是否打开在正确的项目文件夹。 示例package.json片段: ```json { "scripts": { "serve": "vue-cli-service serve", "build": "vue-cli-service build", "start": "node server.js", "dev": "vite" } } ``` 根据上述配置: - 运行`npm run serve`会启动Vue开发服务器。 - 运行`npm start`会启动Node服务器(因为start脚本存在)。 - 运行`npm run dev`会使用Vite启动开发服务器。 常见框架的默认命令: | 框架/工具 | 默认启动命令 | |----------------|----------------| | Vue CLI | npm run serve | | create-react-app| npm start | | Angular CLI | npm start | | Vite | npm run dev | | Next.js | npm run dev | | Nuxt.js | npm run dev | 如果用户错误地运行了`npm run server`(而实际脚本是`serve`),则会出现报错,因为`server`脚本不存在。此时应运行`npm run serve`。 总结:根据package.json中定义的脚本名称来运行命令。 相关问题: 1. 如何创建package.json文件? 2. npm run命令的工作原理是什么? 3. 如何修改package.json中的脚本? 4. 如何解决npm脚本执行中的其他常见错误?</think>### 解决 npm ERR! Missing script: "serve" 的方法 这个错误表示你的项目在 `package.json` 文件中缺少名为 `"serve"` 的脚本命令。以下是逐步解决方案
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值