问题
在 Jenkins Pipeline 中,我为了便于构建生产和开发环境的项目,设置了 NODE_ENV 为参数的参数化构建过程。在构建的过程中,我将 NODE_ENV 设置为 production
时, pnpm install
不会安装 devDependencies
并删除所有的 devDependencies
。具体可以查看这些文档
解决方案
由于设置 NODE_ENV 会导致这个问题,所以在有关于pnpm install | run ...
时,不能直接设置 --mode production
。
个人的 package.json : scripts
1 2 3 4 5 6 7 8 9
| { "scripts": { "dev": "vite --config ./config/vite.config.dev.ts", "build": "vue-tsc --noEmit && vite build --config ./config/vite.config.prod.ts", "report": "cross-env REPORT=true npm run build", "preview": "npm run build && vite preview --host", "type:check": "vue-tsc --noEmit --skipLibCheck" } }
|
可以在 scripts 中加入 --mode development | production
,就能避免 --mode prodution
作用 pnpm
1 2 3 4 5 6 7 8 9 10
| { "scripts": { "dev": "vite --config ./config/vite.config.dev.ts", "build": "vue-tsc --noEmit && vite build --config ./config/vite.config.prod.ts", + "build:dev": "vue-tsc --noEmit && vite build --config ./config/vite.config.prod.ts --mode development", "report": "cross-env REPORT=true npm run build", "preview": "npm run build && vite preview --host", "type:check": "vue-tsc --noEmit --skipLibCheck" } }
|
其他拓展
升级包最好使用 pnpm update
,因为 pnpm add
在升级安装时可能会自动 semver range operator
,如果要避免这种情况,第一个可以使用pnpm add --save-exact, -E <package>
,第二种就是 pnpm update <package>