优秀的编程知识分享平台

网站首页 > 技术文章 正文

给你代码:关于npm的坑(npm 指令)

nanyue 2024-08-15 08:04:59 技术文章 6 ℃


小伙伴们在安装模块的时候由于国内连npm不是特别快,都是利用的cnpm淘宝镜像去安装插件这样很快。https://developer.aliyun.com/mirror/NPM?from=tnpm。

最近我就遇到了一个问题,在利用vue-cli构建以后的项目以后,我后续打包出来的文件会不统一,别人使用npm安装打包会和我的结果不统一。这就很难过,虽然运行出来的结果看起来是差不多的。

其实是这样的,在运用vue-cli构建的时候他内部是npm去安装的,(其实还可以选择pnpm或者yarn, 默认是npm)然后我后续安装其他东西是运用的cnpm,这就出现了问题,npm安装文件的时候会出现pack-lock.json这个文件,他会提示你千万不要忘记去提交这个文件。而cnpm安装文件的时候是不会去依赖这个文件的,https://zhuanlan.zhihu.com/p/22934066。

所以这就会造成不统一。在别人打开你的文件然后安装的时候,执行npm install,会依赖其中的pack-lock文件,按照其中的版本来安装正确的版本号。防止不同用户安装不一样的依赖,导致可能会出现依赖。而cnpm确实是在安装的时候不会去看pack-lock.json。

那么关于cnpm它有两种方式去安装。

1.$ npm install -g cnpm --registry=https://registry.npm.taobao.org

2.alias cnpm="npm --registry=https://registry.npm.taobao.org \

--cache=$HOME/.npm/.cache/cnpm \

--disturl=https://npm.taobao.org/dist \

--userconfig=$HOME/.cnpmrc"

# Or alias it in .bashrc or .zshrc

$ echo '\n#alias for cnpm\nalias cnpm="npm --registry=https://registry.npm.taobao.org \

--cache=$HOME/.npm/.cache/cnpm \

--disturl=https://npm.taobao.org/dist \

--userconfig=$HOME/.cnpmrc"' >> ~/.zshrc && source ~/.zshrc

这两种方式结果是不一样的,第二种方式只是把registry切换,依赖安装策略是semver机制,还是走npm。如果小伙伴里面有不同的安装方法,里面的依赖部分也许规范不一样,那么导致cnpm出来的结果也会不统一。

最近发表
标签列表