Как пройти проверку JSON для write-manifest.json при добавлении «debugLocale»? - PullRequest
0 голосов
/ 09 января 2019

Я пытаюсь создать свою первую локализованную SPFX WebPart для Sharepoint Online. Я добавил дополнительный язык de-de.js в папку loc и теперь пытаюсь изменить write-manifest.json, чтобы использовать мой новый язык при отладке, добавив к нему свойство `" debugLocale ":

{
    "$schema": "https://developer.microsoft.com/json-schemas/spfx-build/write-manifests.schema.json",
    "cdnBasePath": "<!-- PATH TO CDN -->",
    "debugLocale": "de-de"
}

Проверка официальных инструкций Microsoft и проверка JSON-схемы write-manifest.json показывает, что это должно скомпилироваться, но когда я gulp serve возвращает:

Build target: DEBUG
./node_modules/@microsoft/node-core-library/lib/JsonSchema.js:178
            throw new Error(prefix + os.EOL +
            ^

    Error: JSON validation failed:
    ./config/write-manifests.json

    Error: #/ (Defines configuration options for the...)
           Additional properties not allowed: debugLocale
        at validateObjectWithCallback (./node_modules/@microsoft/node-core-library/lib/JsonSchema.js:178:19)
        at JsonSchema.validateObjectWithCallback (./node_modules/@microsoft/node-core-library/lib/JsonSchema.js:193:13)
        at JsonSchema.validateObject (./node_modules/@microsoft/node-core-library/lib/JsonSchema.js:175:14)
        at WriteManifestsTask._readConfigFile (./node_modules/@microsoft/gulp-core-build/lib/tasks/GulpTask.js:311:28)
        at WriteManifestsTask.onRegister (./node_modules/@microsoft/gulp-core-build/lib/tasks/GulpTask.js:87:32)
        at Object.initialize (./node_modules/@microsoft/gulp-core-build/lib/index.js:299:24)
        at SPWebBuildRig.initialize (./node_modules/@microsoft/sp-build-common/lib/BuildRig.js:61:19)
        at SPWebBuildRig.initialize (./node_modules/@microsoft/sp-build-common/lib/SPBuildRig.js:29:15)
        at SPWebBuildRig.initialize (./node_modules/@microsoft/sp-build-web/lib/SPWebBuildRig.js:15:15)
        at Object.exports.initialize (./node_modules/@microsoft/sp-build-web/lib/index.js:23:17)
    npm ERR! code ELIFECYCLE
    npm ERR! errno 1
    npm ERR! hello-world@0.0.1 start: `gulp serve`
    npm ERR! Exit status 1
    npm ERR!
    npm ERR! Failed at the hello-world@0.0.1 start script.
    npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

    npm ERR! A complete log of this run can be found in:
    npm ERR!     ~/.npm/_logs/2019-01-09T16_43_53_070Z-debug.log

Как я могу решить эту проблему?

Ответы [ 2 ]

0 голосов
/ 12 января 2019

Между 1.5 и 1.6 задачи сборки, похоже, изменились. Я подтвердил проблему с 1.6 +.

Если вы измените свой write-manfiest.json "debugLocale" на "buildSingleLocale", все будет работать как положено. Я думаю, что документы и схема могут быть устаревшими.

{
    "$schema": "https://developer.microsoft.com/json-schemas/spfx-build/write-manifests.schema.json",
    "cdnBasePath": "<!-- PATH TO CDN -->",
    "buildSingleLocale": "de-de"
}
0 голосов
/ 11 января 2019

Я только что попробовал, и это работает в моей настройке.

  1. Создание веб-части с использованием yo @microsoft/sharepoint с параметрами по умолчанию (с использованием React в качестве инфраструктуры Javascript)
  2. Добавлен de-de.js файл в папку loc и изменены значения, чтобы я мог видеть, что действительно захватывает правильный файл
  3. Добавлено "debugLocale": "de-de" к write-manifests.json
  4. Выполнить gulp serve
  5. Тексты использованы с de-de.js

Мои версии:

  • лет - 2.0.3
  • @ генератор microsoft / sharepoint - 1.4.1 (я знаю, что он старый)
  • нпм - 5,6,0 (да, тоже старый)

Но , как только я обновил генератор @microsoft/sharepoint до последней версии 1.7.1, он перестал работать. Похоже, проблема возникает с версии 1.6.0

Обходной путь - запустить его с параметром --locale, например gulp serve --locale=de-de, или использовать более старую версию:

npm uninstall @microsoft/generator-sharepoint -g
npm install @microsoft/generator-sharepoint@1.5.1 -g
...