相关疑难解决方法(0)

composer.lock应该提交版本控制吗?

我对composer.lock使用存储库的应用程序感到困惑.

我看到很多人说我们不应该.gitignore composer.lock从存储库中.

如果我在我的开发环境中更新我的库,我将有一个新的,composer.lock但我将无法将它们更新到生产中,是吗?

它不会在这个文件上产生冲突吗?

git version-control composer-php

497
推荐指数
5
解决办法
12万
查看次数

我应该提交yarn.lock文件,它的用途是什么?

yarn.lock执行a后,Yarn会创建一个文件yarn install.

这应该提交到存储库还是被忽略?它是为了什么?

yarnpkg

270
推荐指数
9
解决办法
6万
查看次数

"npm install"和"npm ci"有什么区别?

我正在进行持续集成并发现了npm ci命令.

我无法确定在我的工作流程中使用此命令的优点.

它更快吗?它会使测试更难,好吗,之后?

continuous-integration npm npm-install npm-ci

143
推荐指数
7
解决办法
4万
查看次数

Cordova 5.0.0:我应该将哪些文件提交给git?

我使用Cordova 5.0.0,我有以下项目结构:

MyProject
    - hooks
    - platforms
    - plugins
    - resources
    - www
    - config.xml
Run Code Online (Sandbox Code Playgroud)

我现在的问题是:我可以省略哪些文件夹?我问它是因为我在三个不同的平台上工作.我在Linux上开发用于Android,Windows用于Windows手机和Mac用于ios.如果我提交整个项目,我总是会收到不支持的平台的警告和错误.

我想要的是一个简约的git存储库.

例如,一个问题是插件.当我从存储库中删除插件文件夹时,我必须手动将它们添加到我的每个开发平台上.

另一个问题是资源文件夹.我使用离子自动生成图标和闪屏.当我现在尝试在ios上构建项目时,它正在抱怨android的图像.

那么我需要什么,我可以省略什么?

gitignore cordova

86
推荐指数
4
解决办法
3万
查看次数

为什么Node模块会进入.staging文件夹?

我有一个Electron应用程序,我正在尝试安装节点模块.当我运行时npm install,它会创建node_modules文件夹,但所有模块都会进入一个名为的子文件夹.staging.每个模块也-xxxxx附加了它,其中x是一些随机字母数字.

我创建的其他电子应用程序从未这样做过.所有节点模块都位于根目录中,node_modules并且没有-xxxxx附加.

知道为什么会这样吗?

node.js package.json electron

28
推荐指数
4
解决办法
3万
查看次数

是否应将package-lock.json文件添加到.gitignore?

要锁定在项目上安装的依赖项的版本,该命令将npm install创建一个名为的文件package-lock.json.这是从Node.js v8.0.0npm v5.0.0开始的,正如你们中的一些人可能知道的那样.

尽管有关于提交此文件的Node.jsnpm建议,但是关于何时应该避免这样做的几个问题也是一种选择.通常我们在项目中承诺,但这是一个特殊的问题.

虽然我们应该package-lock.json默认提交文件,但我们有一个特定的情况我们不应该.举例来说,如果我们要测试的最新版本的项目依赖的,它可以增加一个选项package-lock.json进入.gitignore.

所以,问题如下:

  1. 应该将package-lock.json文件添加到.gitignore
  2. 是否有任何特殊情况,我们必须绝不可以这样做?

javascript git gitignore node.js npm

25
推荐指数
1
解决办法
2万
查看次数

将npm的"package-lock.json"置于版本控制之下有什么意义?

将npm package-lock.json置于版本控制之下有什么意义?根据我的经验,这个文件源控制引起了比效率提升更多的麻烦和混乱.

拥有package-lock.json源代码控制下使一个大难题每个人谁添加/删除一个开发者/修改的任何节点模块时需要解决冲突的分支之间.特别是在复杂/大型应用程序上工作,其中package-lock.json可以长达数万行.即使只是吹掉node_modules并运行一个新的,npm install也会在package-lock中产生剧烈的变化.

关于包锁还有其他几个SO问题:

和一个关于包锁的大量对话的GitHub问题:

这让我觉得仍有广泛的不确定因素需要消除.

根据文件

package-lock.json 为npm修改node_modules树或package.json的任何操作自动生成.

你为什么要把一个自动生成的文件放在源代码管理下呢?

上面的GitHub问题详细说明了一些人为了应对与package-lock.json的混淆,如何将npm install脚本更改为rm -f package-lock.json && npm install,这也感觉不正确.

似乎package-lock.json正在努力成为节点模块依赖关系的确切版本的真实来源,但这不正是package.json的功能吗?什么时候解决这个文件中的合并冲突的难以忍受的痛苦开始得到回报?

version-control npm package.json package-lock.json

22
推荐指数
3
解决办法
6856
查看次数

package-lock.json也应该发布吗?

npm 5介绍了package-lock.json,其中的文档就在这里.

它声明该文件旨在包含在版本控制中,因此任何克隆您的包并安装它的人都将具有相同的依赖版本.换句话说,您不应将其添加到.gitignore文件中.

它没有说明的是该文件是否包含在已发布的包中.这个问题可以改为:应该将package-lock.json包含在.npmignore中吗?

gitignore node.js npm npmignore package-lock.json

20
推荐指数
1
解决办法
3666
查看次数

npm ci 在 Windows 上使用 Angular 8 和 Node 12 输出错误:node-gyp重建

我的设置:

  • Windows 10
  • 适用于 Windows 的 NVM 1.1.7
  • 节点 12.14.1 和 npm 6.13.4
  • Angular 8.2.14 和 @angular/cli 8.3.22

只是尝试运行默认的角度模板:

> npm install -g @angular/cli # this installed the angular version mentioned above
> ng new test # Chose default options for the project
> cd test
> npm ci # lots of error messages
Run Code Online (Sandbox Code Playgroud)

最后一个命令会导致输出中出现很多错误(但不会使命令失败):

> fsevents@1.2.11 install C:\test\node_modules\@angular\compiler-cli\node_modules\fsevents
> node-gyp rebuild


C:\test\node_modules\@angular\compiler-cli\node_modules\fsevents>if not defined npm_config_node_gyp (node "C:\Users\foo\AppData\Roaming\nvm\v12.14.1\node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild )  else (node "C:\Users\foo\AppData\Roaming\nvm\v12.14.1\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" rebuild )
gyp ERR! find Python
gyp …
Run Code Online (Sandbox Code Playgroud)

node.js npm angular

14
推荐指数
1
解决办法
3005
查看次数

安装新软件包时 npm-force-resolutions 不起作用

我正在使用的脚本部分package.json来强制解决方案:

"preinstall": "npx npm-force-resolutions"
Run Code Online (Sandbox Code Playgroud)

在分辨率部分,我输入graceful-fs了指定的版本:

"resolutions": {
  "graceful-fs": "^4.2.4",
},
Run Code Online (Sandbox Code Playgroud)

当我运行npm i一切都正确安装时,会考虑设置版本。但是后来当我安装一个额外的模块时,例如npm i random-package,我的设置版本被扔掉了,我最终得到graceful-fs@1.2.3了一些依赖项中的其他低版本。

如果我清除 node_modules 文件夹并npm i再次运行,一切都会再次正常。

我还尝试将分辨率设置得更具体,例如

"resolutions": {
  "glob/**/graceful-fs": "^4.2.4",
},
Run Code Online (Sandbox Code Playgroud)

但这无济于事。

我也试过:

  • 将模块添加为依赖项、devDependency 或 peerDependency
  • 使用收缩包装并将其覆盖在那里

但没有运气。

我错过了什么?

dependencies node.js npm npm-install npm-scripts

9
推荐指数
4
解决办法
1万
查看次数