一个vue-cli3制作的项目,本地无法启动
package.json
中build指令为空,很奇怪。
正常的vue-cli生成的项目,package.json中的build会使用vue-cli-service
来打包,而且会有vue-cli
的依赖。
但这个明明是vue-cli3生成的项目中,却没有vue-cli-service
,甚至没有webpack
依赖。
怎么打包?
这个项目git中是提交了打包后的dist文件,所以生产环境部署是没问题的,但是本地新开发代码却无法打包,因为是老项目,猜测是交接的时候,本地没有提交部分文件(也很奇怪,难道本地有单独的package.json文件?why?)
因为这个项目是多 package项目,用lerna来管理,一个项目是node,一个项目是websrc。上面说的问题就是websrc下的vue项目。 猜测是lerna有单独配置,尝试通过lerna打包websrc,但是发现lerna只是引用了websrc下的package.json,而package.json并的build为空,所以还是不行,不是lerna的问题。
进入websrc目录,手动安装vue-cli-service,并尝试打包,各种版本问题和报错。 (省略一万字) (因为本地是node16,vue3,vue-client3,而项目是vue-cli3制作的vue2的项目,中间各种版本报错)。
最终,本地用nvm重新安装node,切换当前node为16
安装打包依赖(因为不熟悉vue和打包,都是通过报错一个个添加的依赖)
"devDependencies": {
"@vue/cli-service": "^4.5.15",
"@vue/compiler-sfc": "^3.2.21",
"vue-template-compiler": "^2.6.14",
"webpack": "^4.46.0",
"less": "^4.1.2",
"less-loader": "^7.3.0",
"sass-loader": "^10.0.5",
"node-sass": "5.0",
"cache-loader": "^4.1.0",
配置vue.config.js
(vue默认entry是main.js,但项目里是index.js,得手动指定)
module.exports = {
"outputDir": "public",
"indexPath": "html/index.html",
pages: {
index: {
// entry for the page
entry: 'src/index.js',
},
}
}
此时再运行./node_modules/@vue/vue-cli-service/bin/cli.js build
,成功了!
但此时依然不知道老代码里为啥没有打包相关的依赖,奇怪!
尝试部署到生产,失败
npm WARN read-shrinkwrap This version of npm is compatible with lockfileVersion@1, but package-lock.json was generated for lockfileVersion@2. I'll try to do my best with it!
...
npm ERR! code EUNSUPPORTEDPROTOCOL
npm ERR! Unsupported URL Type "npm:": npm:[email protected]
生产环境是