如何将原生HTML/CSS/JS项目通过npm部署到gh-pages?
解决原生HTML/CSS/JS项目部署gh-pages时build脚本错误的问题
你遇到的核心问题是build脚本配置错误——你把src填在了build脚本里,系统会把它当成可执行命令去运行,但src只是你的项目文件夹名称,根本不是能执行的命令,所以才会抛出“'src' 不是内部或外部命令”的报错。
因为你的项目是纯原生HTML、CSS和异步JS,没有React/Angular这类框架需要的编译、打包步骤,所以有两种简单的解决方式:
方式一:简化脚本(推荐)
直接删掉不必要的build和predeploy脚本,因为gh-pages可以直接部署src文件夹,不需要预构建流程。修改你的package.json里的scripts部分:
"scripts": { "dev": "lite-server", "test": "echo \"Error: no test specified\" && exit 1", "deploy": "gh-pages -d src" }
修改后直接运行npm run deploy,就能正常把src文件夹的内容部署到gh-pages分支了。
方式二:保留构建流程(适合未来扩展)
如果你想保留predeploy触发build的流程(比如以后可能会加入打包工具),可以让build脚本执行一个无副作用的命令,比如输出构建完成的提示:
"scripts": { "dev": "lite-server", "test": "echo \"Error: no test specified\" && exit 1", "build": "echo '原生项目无需编译,直接部署src文件夹'", "predeploy": "npm run build", "deploy": "gh-pages -d src" }
这样运行npm run build时只会输出提示信息,不会报错,predeploy执行完成后会正常触发deploy命令。
如果以后你的项目需要真正的构建步骤(比如用Webpack打包),再把build脚本替换成对应的打包命令即可。
内容的提问来源于stack exchange,提问作者Amr
相关产品推荐
相关产品推荐

