使用package-lock.json更新中间npm依赖项

时间:2017-11-06 20:13:30

标签: node.js npm package-lock.json npm-update

package-lock.json file出现时使用npm更新中间依赖关系的正确方法是什么?

例如:

npm update grunt-eslint --dev --depth 1
npm update eslint --dev

package-lock.json通过在4.9.0保持eslint(一个中间依赖,在本例中为grunt-eslint)来完成它的工作。我如何更新到eslint@4.10?

我尝试了以下命令,但是npm没有做任何事情:

  using (var connection = new TReportEntitiesConnection())
            {

                var header = connection.THeaders.Include("TReports").SingleOrDefault(f => f.ID == model.ID);

                if (header != null)
                {
                    header.THeaderTitle = model.THeaderTitle; //update parent 
                }
                foreach (var existingChild in header.TReports.ToList())
                {

                    if (!model.TReports.Any(c => c.ID == existingChild.ID))
                        connection.TReport.Remove(existingChild);

                }
                foreach (var url in model.TReports)
                {
                    var existingChild = header.TReports
                        .Where(c => c.ID == url.ID)
                        .SingleOrDefault();


                    if (existingChild != null)
                    { //update child
                        connection.Entry(existingChild).CurrentValues.SetValues(url);
                    }
                    else
                    {
                        var newChild = new TReport
                        {
                            TReportName = url.name,
                            URL = url.url,
                        };

                        header.TReports.Add(newChild);
                    }
                }
                connection.SaveChanges();
            }

如果我将eslint添加为顶级依赖项,它会起作用,但我认为这不是正确的方法。

1 个答案:

答案 0 :(得分:2)

这显然是一个hacky解决方法,但它的目的是:

npm install eslint --save-dev && npm uninstall eslint --save-dev

如果有更好的方法,我会很乐意接受另一个答案。