Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 20.01.2014
Сообщений: 259

Deploymend на Build Servere

03.04.2018, 17:44. Показов 1709. Ответов 12

Студворк — интернет-сервис помощи студентам
Господа, просветите пожалуйста. Я вообще не понимаю о чем речь.
Deploymend на Build Servere
Сервер Jenkins, использовать надо Build Cake... Я вообще не в материале. Вот я написал программу которую запускал только под IDE. Теперь мне говорят разверни, или собери( я даже не знаю как правильно ) на Сервере.. Я вообще не знаю как подступиться и в какую сторону смотреть... Eщё там есть sonarQube, это кажется система контроля версий.
В общем, что делать то? Физически, что делать? Что писать? Или что куда класть? Или что открывать? Переименовывать?
Помогите пожалуйста. Абсолютно незнакомая область.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.04.2018, 17:44
Ответы с готовыми решениями:

Win 8.1 build 9600 распознаётся как Windows 8 build 9200
Проблема с версией. Win 8.1 build 9600 распознаётся как Windows 8 build 9200 . Проверил ток что . #include <windows.h> ...

Почему в Eclipse неактивно действие Build Project и Build All?
Доброго времени суток) У меня вопрос такой: почему в Eclipse неактивно действие Build Project и Build All?

Как поднять сервер на Open Servere для пользователей одной сети?
Суть в том, что мне нужно сделать так, чтобы человек, который подключен к тому же WI-FI, что и я, мог зайти на мой сайт, если я дам ему...

12
911 / 796 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
03.04.2018, 17:48
в чём проблема почитать мануалы по Jenkins? в сети куча примеров как разворачивать на нём свои проекты.
0
0 / 0 / 0
Регистрация: 20.01.2014
Сообщений: 259
03.04.2018, 17:54  [ТС]
SeIZVeIZ, Извините пожалуйста, а какие вопросы можно задавать?
Это совершенно незнакомое для меня словосочетание, развернуть проект на сервере. Я вот даже недогодался почитать мануалы по Jenkins, ибо вообще не понимаю, о чём идет речь.
0
 Аватар для IamRain
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,231
03.04.2018, 17:56
Цитата Сообщение от Lego9 Посмотреть сообщение
В общем, что делать то? Физически, что делать?
1. Развернуть Build Server.
Который при каждом коммите будет билдить и в случае успешного билда разворачивать свежую версию вашего приложения, написанного в IDE.
При любом результате билда обычно отправляются email-уведомления учатникам проекта.

Вообщем, всегда свежее мясо на прилавке демо-стенде
0
0 / 0 / 0
Регистрация: 20.01.2014
Сообщений: 259
03.04.2018, 18:02  [ТС]
SeIZVeIZ, скажите, а какие вопросы можно задавать?
Это совершенно не знакомое для меня словосочетание "развернуть проект на сервере". Я вот даже не догадался почитать мануалы по Jenkins. Ибо не понимаю о чём идет речь. Что делать надо?

Добавлено через 4 минуты
IamRain, Извините пожалуйста, что это значит? "Развернуть Build Server"... Что значит билдить? Про уведомления не спрашиваю.... И если есть просто ссылки где об этом можно почитать на понятном языке, буду благодарен. Ничего понятного, не нагуглил.
0
 Аватар для IamRain
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,231
03.04.2018, 18:10
Цитата Сообщение от Lego9 Посмотреть сообщение
Что значит билдить?
Компилировать/собирать свежую версию исходников.

Цитата Сообщение от Lego9 Посмотреть сообщение
почитать на понятном языке
На английском только. Читайте документацию. На русском языке разве что блоггеры какие-нибудь будут писать.
По другому никак.
0
0 / 0 / 0
Регистрация: 20.01.2014
Сообщений: 259
03.04.2018, 18:18  [ТС]
IamRain, Послушайте, я не совсем ленивый. Я именно не понимаю о чем идет речь и как всё это взаимосвязано. Я читал документацию. Меня это не продвигает. Я не понимаю, как связать то, что у меня есть в IDE c Jenkins, sonarQube, и Build Cake. Что от меня требуется? Что я должен увидеть?
Я могу писать код под IDE. Дальше тёмный лес. Если это так тривиально, может быть можно в двух словах?

Я ещё раз прошу не пинать больно. Это форум для начинающих, я начинающий. И даже если то, что я спрашиваю, это совсем азы и неприлично просто,( ну вот не нашел )... Тем проще объяснить...
0
 Аватар для IamRain
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,231
03.04.2018, 18:42
Цитата Сообщение от Lego9 Посмотреть сообщение
Что от меня требуется?
Вам нужно поднять CI/Build Server на основе Jenkins.

В доках есть Getting Started раздел, оттуда и начинайте переводить/вникать. Вам уже дали достаточно информации для начала.

Подозреваю, что это ваше тестовое задание на разработчика. Соответственно, вам, как разработчику нужно научиться абстрагироваться от большого кол-ва информации и искать суть. Поэтому формализуйте прочитанное и сделайте самостоятельно.
А не делайте только после того, когда по пунктам тыкнут носом - так любой может.
0
0 / 0 / 0
Регистрация: 20.01.2014
Сообщений: 259
03.04.2018, 18:53  [ТС]
IamRain, вы знаете, Вы три сообщения написали и довольно объемных. И ни слова о сути вещей. Я просидел сегодня целый день. И совершенно не продвинулся. Если бы мне было лень, я бы не спрашивал. Я не понимаю вообще о чём это. Что нужно сделать? Что должно получиться? Что делать с Cake? Что куда класть?
Нет, это не тест на разработчика.
Я ничего не пытаюсь переложить. Мне действительно нужна помощь, объяснения. Есть тут, кто-нибудь кто шарит и готов поделиться знаниями?

Добавлено через 6 минут
Да и Jenkins установлен, sonarQube тоже, cake видимо тоже, хотя я вообще не очень понимаю что значит установлен, если скрипт имеет синтаксис C#. Здесь уже всё давно работает, и вот мне надо выложить мой проект. Сказано, мы используем Cake...
0
911 / 796 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
04.04.2018, 09:22
Лучший ответ Сообщение было отмечено Lego9 как решение

Решение

Вам нужно в Jenkins создать задачу, которая будет собирать Ваш проект. В этой задаче задать путь откуда брать исходный код. Написать мини скрипт для билда проекта при помощи MSBuild который будет запускаться Jenkins'ом. Задать переодичность билда раз в час, два, сутки, неделя. Более подробно ищите в сети. Вам нужно понять именно эту сторону, после настроек всех дальше вы пишите как обычно свой код, заливаете всё в git или типо такого, где у Вас кароче исходники находятся и откуда настроено запуск Jenkins на сборку.
0
0 / 0 / 0
Регистрация: 20.01.2014
Сообщений: 259
04.04.2018, 10:47  [ТС]
SeIZVeIZ, спасибо, уже немного яснее..
Вам нужно понять именно эту сторону
Да, мне нужно понять именно эту сторону. И я читаю, но мне некому подсказать, поэтому я не понимаю правильно ли я понимаю... Нельзя ли какой то пример или задачу.?
Что делает sonarQube? Как мне его использовать? Вы пишете при помощи MSBuild, А build Cake? Что делает что? Странно, но я ничего понятного нагуглить не могу. Такое ощущение, что это либо очень просто, и все и так знают как сбоку выложить, типа мелкая деталь в процессе. Либо это наоборот сложная задача для специально обученных людей... В общем, я уперся... Мне бы как то руками это всё....
0
911 / 796 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
04.04.2018, 11:07
Цитата Сообщение от Lego9 Посмотреть сообщение
А build Cake?
это кроссплатформенный типо билдер вроде даже типо дженкинса


Настройка среды непрерывного развертывания с помощью Jenkins

Непрерывная интеграция с Jenkins

Используем Cake для сборки C# кода

Видос по Cake

и так далее кароче. изучай и выясняй как тебе что делать. как я помню Cake и Jenkins это типо что-то похожее, некогда восстанавливать эти знания, да и незачем они мне уже.
0
0 / 0 / 0
Регистрация: 20.01.2014
Сообщений: 259
04.04.2018, 12:39  [ТС]
Господа, если кто-то это понимает, может быть объясните? Дженкинс система непрерывного развертывания. Я что кладу куда?
вот есть в проекте файл, build.bat в нем маленький скрипт.
C#
1
2
REM possible features: SonarQube, Coverage, Compile, MakeNuGets, PublishNuGets, RunTests
powershell .\build.ps1 -ScriptArgs '-BuildType="Nightly"','-RepositoryName="SGG"','-BuildNumber="Dummy"','-SonarQube="disabled"','-Coverage="disabled"', '-Compile="enabled"', '-RunTests="enabled"', '-MakeNuGets="disabled"', '-PublishProgram="enabled"'
, а есть файл buid.cake в нём большой скрипт на C#:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
#addin "nuget:?package=Cake.Sonar"
#addin "Cake.ExtendedNuGet"
#addin "nuget:?package=NuGet.Core"
#addin "Cake.Incubator"
#addin nuget:?package=SharpZipLib
#addin "Cake.Compression"
#addin "Cake.Git"
 
#tool "nuget:?package=NUnit.ConsoleRunner"
#tool "nuget:?package=OpenCover"
#tool "nuget:?package=MSBuild.SonarQube.Runner.Tool"
 
using System.Xml;
 
const string featureEnabled = "enabled";
const string featureDisabled = "disabled";
var target = Argument("target", "Default");
var sonarQube = Argument("SonarQube", featureEnabled);
var coverage = Argument("Coverage", featureEnabled);
var makeNuGets = Argument("MakeNuGets", featureEnabled);
var publishNuGets = Argument("PublishNuGets", featureEnabled);
var publishProgram = Argument("PublishProgram", featureEnabled);
var runTests = Argument("RunTests", featureEnabled);
var compile = Argument("Compile", featureEnabled);
var buildType = Argument("BuildType", string.Empty);
var buildNumber = Argument("BuildNumber", string.Empty);
var repositoryName = Argument("RepositoryName", string.Empty);
 
var artifacts = "./artifacts";
var resultsFile = artifacts + "/UnitTestResults.xml";
var coverageFile = artifacts + "/UnitTestCoverage.xml";
var configuration = "Release";
var PublishPath = "//Server09/builds/vNext";
var solution = File("./MasterData.Import.sln");
var projects = GetFiles("./src/**/*.csproj");
var nugetFeed = "http://192.168.10.20:81/nuget/default/";
var gitHashShort = string.Empty;
var version = string.Empty;
int publishedNugets = 0;
int programmsToPublish = 0;
 
Task("Default")
  .IsDependentOn("Setup")
  .IsDependentOn("NuGetRestore")
  .IsDependentOn("BeginSonar")
  .IsDependentOn("Compile")
  .IsDependentOn("RunUnitTests")
  .IsDependentOn("RunUnitTestsWithCoverage")
  .IsDependentOn("EndSonar")
  .IsDependentOn("MakeNuGets")
  .IsDependentOn("PublishNuGets")
  .IsDependentOn("ZipProgram")
  .IsDependentOn("PublishProgram")
  .IsDependentOn("NuGetsPublishedGuard")
  .Does(() =>
  {
  });
 
Task("Setup")
  .Does(()=> 
  { 
    if (string.IsNullOrWhiteSpace(buildNumber))
    {
      buildNumber = EnvironmentVariable("BUILD_NUMBER");
    }
    Information($"Build Number: {buildNumber}");    
 
    var gitLastCommit = GitLogTip("./");    
    var gitHash = gitLastCommit.Sha;
    gitHashShort = gitHash.Substring(0, 7);
    Information($"Git Hash: {gitHash}");
    Information($"Git Hash Short: {gitHashShort}");
 
    XmlDocument xml = new XmlDocument();
    xml.Load("./BuildProcess/Version.Targets");
    XmlElement propertyGroupNodes = xml["Project"]["PropertyGroup"];
    string major = propertyGroupNodes["Major"].InnerText;
    string minor = propertyGroupNodes["Minor"].InnerText;
    string build = propertyGroupNodes["Build"].InnerText;
    version = $"{major}.{minor}.{build}";
    Information($"Version: {version}");
    
    var artifactsFolder = new DirectoryPath(artifacts);
    CreateDirectory(artifactsFolder);
    CleanDirectory(artifactsFolder);
    Information($"Folder {artifactsFolder} created");
  });
 
Task("NuGetRestore")
  .WithCriteria(() => compile == featureEnabled)
  .Does(()=> 
  { 
    var buildsetting = new MSBuildSettings 
      {
        Verbosity = Verbosity.Minimal,
        ToolVersion = MSBuildToolVersion.VS2017,
        Configuration = "Release",
        PlatformTarget = PlatformTarget.MSIL
      };
    buildsetting = buildsetting.WithTarget("restore");
 
    MSBuild(solution, buildsetting);
  });
 
Task("BeginSonar")
  .WithCriteria(() => compile == featureEnabled)
  .WithCriteria(() => sonarQube == featureEnabled)
  .Does(()=> 
  { 
    string repositoryNameForSonarQube = repositoryName;
    if (repositoryName.StartsWith("MedicalPad."))
    {
      repositoryNameForSonarQube = repositoryName.Replace("MedicalPad.", "vNext.");
    }
 
    SonarBegin(new SonarBeginSettings{
      Name = repositoryNameForSonarQube,
      Version = version,
      Key = repositoryNameForSonarQube,
      Url = "http://192.168.10.20:9000",
      Login = "admin",
      Password = "admin",
      OpenCoverReportsPath = coverageFile
    });
  });
 
Task("Compile")
  .WithCriteria(() => compile == featureEnabled)
  .Does(()=> 
  { 
    MSBuild(solution, new MSBuildSettings 
      {
        Verbosity = Verbosity.Minimal,
        ToolVersion = MSBuildToolVersion.VS2017,
        Configuration = "Release",
        PlatformTarget = PlatformTarget.MSIL
      });
  });
 
Task("EndSonar")
  .WithCriteria(() => compile == featureEnabled)
  .WithCriteria(() => sonarQube == featureEnabled)
  .Description("Starting Sonar Qube analysis")
  .Does(()=> 
  { 
    SonarEnd(new SonarEndSettings
      {
        Login = "admin",
        Password = "admin"
      });
  });
 
Task("RunUnitTests")
  .WithCriteria(() => coverage == featureDisabled)
  .WithCriteria(() => runTests == featureEnabled)
  .Description("Running unit tests")
  .Does(()=> 
  { 
    var testAssemblies = GetFiles("./tests/**/bin/Release/*.UnitTests.dll");
    NUnit3(testAssemblies, new NUnit3Settings 
    {
      Results = new[] { new NUnit3Result { FileName = resultsFile } }
    });
  });
 
Task("RunUnitTestsWithCoverage")
  .WithCriteria(() => coverage == featureEnabled)
  .WithCriteria(() => runTests == featureEnabled)
  .Description("Running unit tests with coverage")
  .Does(()=> 
  { 
    var nunitSettings = new NUnit3Settings 
    {
      Results = new[] { new NUnit3Result { FileName = resultsFile } }
    };
 
    var testAssemblies = GetFiles("./tests/**/bin/Release/*.UnitTests.dll");
    OpenCover(tool => tool.NUnit3(testAssemblies, nunitSettings),
      new FilePath(coverageFile),
      new OpenCoverSettings()
        .WithFilter("+[*]*")
        .WithFilter("-[*UnitTests.dll]*"));
  });
 
Task("MakeNuGets")
  .WithCriteria(() => compile == featureEnabled)
  .WithCriteria(() => makeNuGets == featureEnabled)
  .Does(()=> 
  { 
    var dotNetPackSettings = new DotNetCorePackSettings
    {
      Configuration = "Release",
      IncludeSymbols = true,
      OutputDirectory = artifacts
    };
    
    var projectsForDotNetPack = projects.Where(file => !FileExists(new FilePath($@"{file.GetDirectory().FullPath}\{file.GetFilenameWithoutExtension()}.nuspec")));
    foreach (var project in projectsForDotNetPack)
    {
      var path = project.FullPath;
      Information($"Generating nuget {path} with dotnet pack");
      DotNetCorePack(path, dotNetPackSettings);
    }
 
    var projectsForNuGetPack = projects.Where(file => FileExists(new FilePath($@"{file.GetDirectory().FullPath}\{file.GetFilenameWithoutExtension()}.nuspec")));
    foreach (var project in projectsForNuGetPack)
    {
      var path = project.FullPath;
      var nuGetPackSettings = new NuGetPackSettings
      {
        Symbols = true,
        OutputDirectory = artifacts,
        Properties = new Dictionary<string, string>
          {
            { "Configuration", configuration }
          }
      };
    
      Information($"Generating nuget via nuspec {path} with nuget pack");
      NuGetPack(path, nuGetPackSettings);
    }
 
  });
 
Task("PublishNuGets")
  .WithCriteria(() => compile == featureEnabled)
  .WithCriteria(() => makeNuGets == featureEnabled)
  .WithCriteria(() => publishNuGets == featureEnabled)
  .Does(()=> 
  { 
    var nugets = GetFiles($"{artifacts}/*.symbols.nupkg");
    foreach(var nuget in nugets)
    {
      if(IsNuGetPublished(nuget, nugetFeed))
      {
        Information($"Skipping nuget {nuget.GetFilename()} because nuget server has actual version");
      }
      else
      {
        Information($"Pushing nuget {nuget.GetFilename()}");
        NuGetPush(nuget, new NuGetPushSettings {
            Source = nugetFeed,
            ApiKey = "UqJs7UarYPU/lQeLw5NA5A=="
        });
        publishedNugets++;
      }
    }
 
    Information($"Published nugets: {publishedNugets}");
  });
 
Task("ZipProgram")
  .WithCriteria(() => compile == featureEnabled)
  .WithCriteria(() => publishProgram == featureEnabled)
  .Does(()=> 
  { 
    if (string.IsNullOrWhiteSpace(buildNumber))
    {
      throw new ArgumentException("Missing Build Parameter", "BuildNumber");
    }
 
    var deployFiles = GetFiles("./**/*.deploy");
    foreach(var deployFile in deployFiles)
    {
      var project = deployFile.GetFilenameWithoutExtension();
      var projectDirectory = deployFile.GetDirectory();
      var buildOutputDirectory =  $"{projectDirectory}/bin/{configuration}";
      var output = $"{artifacts}/{project}_{version}-{buildNumber}-{gitHashShort}.zip";
      ZipCompress(buildOutputDirectory, output);
      
      Information($"Published programms: {project}");
      Information($"From: {buildOutputDirectory}");
      Information($"To: {output}");
      programmsToPublish++;
    }
 
    if (programmsToPublish == 0)
    {
      throw new InvalidOperationException("No Programm to Publish");
    }
 
    Information($"Published programms: {programmsToPublish}");
  });
 
Task("PublishProgram")
  .WithCriteria(() => compile == featureEnabled)
  .WithCriteria(() => publishProgram == featureEnabled)
  .WithCriteria(() => programmsToPublish > 0)
  .Does(()=> 
  { 
    var programmsCopied = 0;
    var PublishVnextPath = string.Empty;
 
    switch (buildType.ToLower())
    {
      case "nightly":
      case "nightlybuild":
        PublishVnextPath = $"{PublishPath}/NightlyBuild/{repositoryName}";
        break;
      case "rc":
      case "release":
      case "releasecandidate":
        PublishVnextPath = $"{PublishPath}/ReleaseCandidate/{repositoryName}";
        break;
 
      default:
        throw new ArgumentException("Unknow Build Type for Publishing: {buildType}", "BuildType");
    }
 
    EnsureDirectoryExists(PublishVnextPath);    
    var programmsToPublish = GetFiles($"{artifacts}/*.zip");
 
    foreach(var programmToPublish in programmsToPublish)
    {
      var projectNameForFolder = programmToPublish.GetFilenameWithoutExtension().ToString().Split('_')[0];
      var zipPublishPath = $"{PublishVnextPath}/{projectNameForFolder}";
      EnsureDirectoryExists(zipPublishPath);      
      CopyFiles(programmToPublish.FullPath, zipPublishPath);
 
      Information($"Copy From: {programmToPublish.FullPath}");
      Information($"Copy To: {zipPublishPath}");
 
      programmsCopied++;
    }
 
    Information($"Copied Programms {programmsCopied}");
  });
 
Task("NuGetsPublishedGuard")
  .WithCriteria(() => compile == featureEnabled)
  .WithCriteria(() => makeNuGets == featureEnabled)
  .WithCriteria(() => publishNuGets == featureEnabled)
  .WithCriteria(() => publishedNugets <= 0)
  .Does(()=> 
  { 
    Information($"Published nugets in guard: {publishedNugets}");
    throw new InvalidOperationException("No new nuget packages found. Increase Version of changed nuget package to allow pushing to server.");
  });
 
RunTarget(target);
,
a есть ещё на Дженкинсе параметры запуска:
C#
1
.\build.ps1 -ScriptArgs '-BuildType="Nightly"','-RepositoryName="MedicalPad.MasterdataImport"','-SonarQube="disabled"','-Coverage="disabled"', '-Compile="enabled"', '-RunTests="enabled"', '-MakeNuGets="disabled"', '-PublishProgram="enabled"' -Verbose
. Ну не понимаю я как это взаимодействует всё. Неужели Вы думаете я спрашиваю, потому, что мне спрашивать нравится? Столько постов и все с призывом покапаться самому. И первые 4 ссылки которые выдает Гугл. Да прочёл я. +0 к пониманию. Кто-нибудь знает простые вещи. Суть. Типа, Дженкинс запускает такой то скрипт, который находится там-то, который в свою очередь делает то-то, мы параметризируем то-то... Результат видим там-то. Происходит следующее и.т.д. Текста получается в разы меньше , чем уже написанно. В разы. Обидно, вероятно Вы вопросом владеете, но всем лень писать суть, но не лень советовать...
Или это настолько тривиально, что и писать не о чем?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.04.2018, 12:39
Помогаю со студенческими работами здесь

Как отдать zip.файл клиенту, если файл находится в таблице на SQL-Servere?
Как отдать zip.файл клиенту, если файл находится в таблице на SQL-Servere? Туда он забрасывается FOX-ом в поле . Строка таблицы имеет...

Webpack "npm run build" выдает ошибку: "npm ERR! missing script: build"
Помогите пожалуйста! npm run build выдает ошибку npm ERR! missing script: build npm ERR! A complete log of this run can be found...

Build failed
Помогите, пожалуйста!:cry: У меня Microsoft VS 2008, не помню, где скачивал, проблема вот в чем: Например, такая программа ...

WinDDK build
Скажите, пожалуйста, как создать проект в восьмой или десятой студии для написания драйвера, чтоб юзался ДДКашный билд?

Hogre build
Доброго времени суток! Изучаю haskell. С чем-то уже разобрался, но многое ещё впереди. До сих пор все мои эксперименты сводятся с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru