pnp / sp-starter-kit

Modern SharePoint Starter Kit - End-to-end showcase solution to get started with modern experiences.
MIT License
761 stars 535 forks source link

Problem building web part dependent on Shared Library #427

Closed arnemo closed 4 years ago

arnemo commented 4 years ago

Category

Question

How to build PersonalCalendar Web Part? Trouble with Shared Library

Sequence of commands executed git clone https://github.com/pnp/sp-starter-kit.git cd sp-starter-kit npm install npm run initialize cd source/library-starter-kit-shared npm install gulp build npm link cd ../react-personal-calendar npm install npm link @starter-kit/shared-library gulp build gulp bundle <- Error here

Stack Trace $ gulp bundle Build target: DEBUG [08:22:19] Using gulpfile ~\Documents\Git\sp-starter-kit\source\react-personal-calendar\gulpfile.js [08:22:19] Starting gulp [08:22:19] Starting 'bundle'... [08:22:19] Starting subtask 'configure-sp-build-rig'... [08:22:19] Finished subtask 'configure-sp-build-rig' after 3.74 ms [08:22:19] Starting subtask 'pre-copy'... [08:22:19] Finished subtask 'pre-copy' after 21 ms [08:22:19] Starting subtask 'copy-static-assets'... [08:22:19] Starting subtask 'sass'... [08:22:19] Finished subtask 'copy-static-assets' after 45 ms [08:22:19] Finished subtask 'sass' after 169 ms [08:22:19] Starting subtask 'tslint'... [08:22:20] [tslint] tslint version: 5.12.1 [08:22:20] Starting subtask 'tsc'... [08:22:20] [tsc] typescript version: 2.9.2 [08:22:22] Finished subtask 'tsc' after 2.42 s [08:22:22] Finished subtask 'tslint' after 3.2 s [08:22:22] Starting subtask 'post-copy'... [08:22:22] Finished subtask 'post-copy' after 263 μs [08:22:22] Starting subtask 'collectLocalizedResources'... [08:22:22] Finished subtask 'collectLocalizedResources' after 5.11 ms [08:22:22] Starting subtask 'configure-webpack'... [08:22:23] Finished subtask 'configure-webpack' after 839 ms [08:22:23] Starting subtask 'webpack'... [08:22:27] Error - [webpack] 'dist': ../library-starter-kit-shared/lib/libraries/spStarterKitShared/SpStarterKitSharedLibrary.js Module not found: Error: Can't resolve 'SpStarterKitSharedLibraryStrings' in 'C:\Users\marcus\Documents\Git\sp-starter-kit\source\library-starter-kit-shared\lib\libraries\spStarterKitShared' resolve 'SpStarterKitSharedLibraryStrings' in 'C:\Users\marcus\Documents\Git\sp-starter-kit\source\library-starter-kit-shared\lib\libraries\spStarterKitShared' Parsed request is a module using description file: C:\Users\marcus\Documents\Git\sp-starter-kit\source\library-starter-kit-shared\package.json (relative path: ./lib/libraries/spStarterKitShared) Field 'browser' doesn't contain a valid alias configuration resolve as module C:\Users\marcus\Documents\Git\sp-starter-kit\source\library-starter-kit- shared\lib\libraries\spStarterKitShared\node_modules doesn't exist or is not a directory C:\Users\marcus\Documents\Git\sp-starter-kit\source\library-starter-kit-shared\lib\libraries\spStarterKitShared\lib doesn't exist or is not a directory C:\Users\marcus\Documents\Git\sp-starter-kit\source\library-starter-kit-shared\lib\libraries\node_modules doesn't exist or is not a directory C:\Users\marcus\Documents\Git\sp-starter-kit\source\library-starter-kit-shared\lib\libraries\lib doesn't exist or is not a directory C:\Users\marcus\Documents\Git\sp-starter-kit\source\library-starter-kit-shared\lib\node_modules doesn't exist or is not a directory C:\Users\marcus\Documents\Git\sp-starter-kit\source\library-starter-kit-shared\lib\lib doesn't exist or is not a directory C:\Users\marcus\Documents\Git\sp-starter-kit\source\node_modules doesn't exist or is not a directory C:\Users\marcus\Documents\Git\sp-starter-kit\source\lib doesn't exist or is not a directory C:\Users\marcus\Documents\Git\sp-starter-kit\lib doesn't exist or is not a directory C:\Users\marcus\Documents\Git\node_modules doesn't exist or is not a directory C:\Users\marcus\Documents\Git\lib doesn't exist or is not a directory C:\Users\marcus\Documents\node_modules doesn't exist or is not a directory C:\Users\marcus\Documents\lib doesn't exist or is not a directory C:\Users\marcus\lib doesn't exist or is not a directory C:\Users\node_modules doesn't exist or is not a directory C:\Users\lib doesn't exist or is not a directory C:\node_modules doesn't exist or is not a directory C:\lib doesn't exist or is not a directory looking for modules in C:\Users\marcus\Documents\Git\sp-starter-kit\source\library-starter-kit-shared\node_modules using description file: C:\Users\marcus\Documents\Git\sp-starter-kit\source\library-starter-kit-shared\package.json (relative path: ./node_modules) Field 'browser' doesn't contain a valid alias configuration looking for modules in C:\Users\marcus\Documents\Git\sp-starter-kit\source\library-starter-kit-shared\lib using description file: C:\Users\marcus\Documents\Git\sp-starter-kit\source\library-starter-kit-shared\package.json (relative path: ./lib) Field 'browser' doesn't contain a valid alias configuration looking for modules in C:\Users\marcus\Documents\Git\sp-starter-kit\node_modules using description file: C:\Users\marcus\Documents\Git\sp-starter-kit\package.json (relative path: ./node_modules) Field 'browser' doesn't contain a valid alias configuration looking for modules in C:\Users\marcus\node_modules No description file found Field 'browser' doesn't contain a valid alias configuration using description file: C:\Users\marcus\Documents\Git\sp-starter-kit\source\library-starter-kit-shared\package.json (relative path: ./node_modules/SpStarterKitSharedLibraryStrings) no extension Field 'browser' doesn't contain a valid alias configuration using description file: C:\Users\marcus\Documents\Git\sp-starter-kit\source\library-starter-kit-shared\package.json (relative path: ./lib/SpStarterKitSharedLibraryStrings) no extension Field 'browser' doesn't contain a valid alias configuration using description file: C:\Users\marcus\Documents\Git\sp-starter-kit\package.json (relative path: ./node_modules/SpStarterKitSharedLibraryStrings) no extension Field 'browser' doesn't contain a valid alias configuration C:\Users\marcus\Documents\Git\sp-starter-kit\source\library-starter-kit- shared\node_modules\SpStarterKitSharedLibraryStrings doesn't exist .wasm Field 'browser' doesn't contain a valid alias configuration C:\Users\marcus\Documents\Git\sp-starter-kit\source\library-starter-kit-shared\lib\SpStarterKitSharedLibraryStrings doesn't exist .wasm Field 'browser' doesn't contain a valid alias configuration C:\Users\marcus\Documents\Git\sp-starter-kit\node_modules\SpStarterKitSharedLibraryStrings doesn't exist .wasm Field 'browser' doesn't contain a valid alias configuration C:\Users\marcus\Documents\Git\sp-starter-kit\source\library-starter-kit- shared\node_modules\SpStarterKitSharedLibraryStrings.wasm doesn't exist .mjs Field 'browser' doesn't contain a valid alias configuration C:\Users\marcus\Documents\Git\sp-starter-kit\source\library-starter-kit-shared\lib\SpStarterKitSharedLibraryStrings.wasm doesn't exist .mjs Field 'browser' doesn't contain a valid alias configuration C:\Users\marcus\Documents\Git\sp-starter-kit\node_modules\SpStarterKitSharedLibraryStrings.wasm doesn't exist .mjs Field 'browser' doesn't contain a valid alias configuration No description file found no extension Field 'browser' doesn't contain a valid alias configuration C:\Users\marcus\Documents\Git\sp-starter-kit\source\library-starter-kit-shared\node_modules\SpStarterKitSharedLibraryStrings.mjs doesn't exist .js Field 'browser' doesn't contain a valid alias configuration C:\Users\marcus\Documents\Git\sp-starter-kit\source\library-starter-kit-shared\lib\SpStarterKitSharedLibraryStrings.mjs doesn't exist .js Field 'browser' doesn't contain a valid alias configuration C:\Users\marcus\Documents\Git\sp-starter-kit\node_modules\SpStarterKitSharedLibraryStrings.mjs doesn't exist .js Field 'browser' doesn't contain a valid alias configuration C:\Users\marcus\node_modules\SpStarterKitSharedLibraryStrings doesn't exist .wasm Field 'browser' doesn't contain a valid alias configuration C:\Users\marcus\Documents\Git\sp-starter-kit\source\library-starter-kit-shared\node_modules\SpStarterKitSharedLibraryStrings.js doesn't exist .json Field 'browser' doesn't contain a valid alias configuration C:\Users\marcus\Documents\Git\sp-starter-kit\source\library-starter-kit-shared\lib\SpStarterKitSharedLibraryStrings.js doesn't exist .json Field 'browser' doesn't contain a valid alias configuration C:\Users\marcus\Documents\Git\sp-starter-kit\node_modules\SpStarterKitSharedLibraryStrings.js doesn't exist .json Field 'browser' doesn't contain a valid alias configuration C:\Users\marcus\node_modules\SpStarterKitSharedLibraryStrings.wasm doesn't exist .mjs Field 'browser' doesn't contain a valid alias configuration C:\Users\marcus\Documents\Git\sp-starter-kit\source\library-starter-kit-shared\node_modules\SpStarterKitSharedLibraryStrings.json doesn't exist C:\Users\marcus\Documents\Git\sp-starter-kit\source\library-starter-kit-shared\lib\SpStarterKitSharedLibraryStrings.json doesn't exist C:\Users\marcus\Documents\Git\sp-starter-kit\node_modules\SpStarterKitSharedLibraryStrings.json doesn't exist C:\Users\marcus\node_modules\SpStarterKitSharedLibraryStrings.mjs doesn't exist .js Field 'browser' doesn't contain a valid alias configuration as directory C:\Users\marcus\Documents\Git\sp-starter-kit\source\library-starter-kit-shared\node_modules\SpStarterKitSharedLibraryStrings doesn't exist as directory C:\Users\marcus\Documents\Git\sp-starter-kit\source\library-starter-kit-shared\lib\SpStarterKitSharedLibraryStrings doesn't exist as directory C:\Users\marcus\Documents\Git\sp-starter-kit\node_modules\SpStarterKitSharedLibraryStrings doesn't exist C:\Users\marcus\node_modules\SpStarterKitSharedLibraryStrings.js doesn't exist .json Field 'browser' doesn't contain a valid alias configuration C:\Users\marcus\node_modules\SpStarterKitSharedLibraryStrings.json doesn't exist as directory C:\Users\marcus\node_modules\SpStarterKitSharedLibraryStrings doesn't exist [C:\Users\marcus\Documents\Git\sp-starter-kit\source\library-starter-kit-shared\lib\libraries\spStarterKitShared\node_modules] [C:\Users\marcus\Documents\Git\sp-starter-kit\source\library-starter-kit-shared\lib\libraries\spStarterKitShared\lib] [C:\Users\marcus\Documents\Git\sp-starter-kit\source\library-starter-kit-shared\lib\libraries\node_modules] [C:\Users\marcus\Documents\Git\sp-starter-kit\source\library-starter-kit-shared\lib\libraries\lib] [C:\Users\marcus\Documents\Git\sp-starter-kit\source\library-starter-kit-shared\lib\node_modules] [C:\Users\marcus\Documents\Git\sp-starter-kit\source\library-starter-kit-shared\lib\lib] [C:\Users\marcus\Documents\Git\sp-starter-kit\source\node_modules] [C:\Users\marcus\Documents\Git\sp-starter-kit\source\lib] [C:\Users\marcus\Documents\Git\sp-starter-kit\lib] [C:\Users\marcus\Documents\Git\node_modules] [C:\Users\marcus\Documents\Git\lib] [C:\Users\marcus\Documents\node_modules] [C:\Users\marcus\Documents\lib] [C:\Users\marcus\lib] [C:\Users\node_modules] [C:\Users\lib] [C:\node_modules] [C:\lib] [C:\Users\marcus\node_modules\package.json] [C:\Users\marcus\Documents\Git\sp-starter-kit\source\library-starter-kit-shared\node_modules\SpStarterKitSharedLibraryStrings] [C:\Users\marcus\Documents\Git\sp-starter-kit\source\library-starter-kit-shared\lib\SpStarterKitSharedLibraryStrings] [C:\Users\marcus\Documents\Git\sp-starter-kit\node_modules\SpStarterKitSharedLibraryStrings] [C:\Users\marcus\Documents\Git\sp-starter-kit\source\library-starter-kit-shared\node_modules\SpStarterKitSharedLibraryStrings.wasm] [C:\Users\marcus\Documents\Git\sp-starter-kit\source\library-starter-kit-shared\lib\SpStarterKitSharedLibraryStrings.wasm] [C:\Users\marcus\Documents\Git\sp-starter-kit\node_modules\SpStarterKitSharedLibraryStrings.wasm] [C:\Users\marcus\node_modules\SpStarterKitSharedLibraryStrings\package.json] [C:\Users\marcus\Documents\Git\sp-starter-kit\source\library-starter-kit-shared\node_modules\SpStarterKitSharedLibraryStrings.mjs] [C:\Users\marcus\Documents\Git\sp-starter-kit\source\library-starter-kit-shared\lib\SpStarterKitSharedLibraryStrings.mjs] [C:\Users\marcus\Documents\Git\sp-starter-kit\node_modules\SpStarterKitSharedLibraryStrings.mjs] [C:\Users\marcus\node_modules\SpStarterKitSharedLibraryStrings] [C:\Users\marcus\Documents\Git\sp-starter-kit\source\library-starter-kit-shared\node_modules\SpStarterKitSharedLibraryStrings.js] [C:\Users\marcus\Documents\Git\sp-starter-kit\source\library-starter-kit-shared\lib\SpStarterKitSharedLibraryStrings.js] [C:\Users\marcus\Documents\Git\sp-starter-kit\node_modules\SpStarterKitSharedLibraryStrings.js] [C:\Users\marcus\node_modules\SpStarterKitSharedLibraryStrings.wasm] [C:\Users\marcus\Documents\Git\sp-starter-kit\source\library-starter-kit-shared\node_modules\SpStarterKitSharedLibraryStrings.json] [C:\Users\marcus\Documents\Git\sp-starter-kit\source\library-starter-kit-shared\lib\SpStarterKitSharedLibraryStrings.json] [C:\Users\marcus\Documents\Git\sp-starter-kit\node_modules\SpStarterKitSharedLibraryStrings.json] [C:\Users\marcus\node_modules\SpStarterKitSharedLibraryStrings.mjs] [C:\Users\marcus\node_modules\SpStarterKitSharedLibraryStrings.js] [C:\Users\marcus\node_modules\SpStarterKitSharedLibraryStrings.json] @ ../library-starter-kit-shared/lib/libraries/spStarterKitShared/SpStarterKitSharedLibrary.js 1:0-60 13:19-26 16:19-26 @ ../library-starter-kit-shared/lib/index.js @ ./lib/webparts/personalCalendar/PersonalCalendarWebPart.js

Environment: Windows 10 Pro Node 8.9.4 Gulp: 3.9.1

Where am i going wrong in my build process? I have been trying to follow documentation as best i could.

ghost commented 4 years ago

Thank you for reporting this issue. We will be triaging your incoming issue as soon as possible.

eoverfield commented 4 years ago

That is the generally correct list of steps. My understanding is that when you creating the link from the personal calendar folder, that should allow the build process to properly resolve the shared library package. Apparently not.

After you run your npm install in the personal calendar webpart folder, manually add the following to your dependencies section:

"@starter-kit/shared-library": "1.0.0"

i.e:

"dependencies": { "@microsoft/sp-core-library": "1.9.1", ... "react": "16.8.5", "react-dom": "16.8.5", "@starter-kit/shared-library": "1.0.0" },

Then your gulp serve should work fine.

If you npm install with the @starter-kit/shared-library in place, you may receive an error if it couldn't be resolved.

arnemo commented 4 years ago

Thanks, the proposed solution allowed me to run gulp bundle and package-solution.

eoverfield commented 3 years ago

Adding more context here, the documentation for this webpart was finally updated to provide better guidance on installing and customizing this webpart.