今回、外部のライブラリを利用するにあたり、初めてnpmの存在を知り、使用するに至りました。
いろいろ調べながらnpmを導入してみて、以下のインストールを実行することができました。
terminal
1npm install --save @ckeditor/ckeditor5-table
そしてその結果、調べてみるとmacを利用していて、設定を変更していない場合、以下のディレクトリに関連するファイル群がデプロイされていることが判明しました。
terminal
1/usr/local/lib/node_modules/npm/node_modules/@ckeditor
ここでわからない点があるのですが、その後のライブラリを見ると以下のようにimportして利用することを指示されています。
javascript
1import Table from '@ckeditor/ckeditor5-table/src/table'; 2import TableToolbar from '@ckeditor/ckeditor5-table/src/tabletoolbar';
①現状、localhostで実装しているのですが、これは実装先のフォルダ下に配置して、絶対参照なり相対参照なりで呼び出せば良いのでしょうか?
②上記の①に関連するのですが、まだよくわからないnpmですが、パッケージ管理で利用されるツールである事は読み取れました。すると、①のように本来あるべきでない場所に配置してしまった場合、既にインストールしたもの(現在利用しているもの)とLatestバージョンのパッケージ管理ができなくなるような気がする(本当に理解が追いつていないので感覚的にです)のですが、実際は配置等を含めてパーケージ管理が必要なのでしょうか?実際に<script>タグ内に指定のimportを記載したところ以下のようなエラーが発生しております。
SyntaxError: Cannot use import statement outside a module
これも今調べたところ、package.jsonやいろいろキーワードが出てくるのですが、どのような調べ方をすれば解決に至るかわからず、ご質問させていただきました。
追記
実際にimportをしてみたコードは以下の通りです。
過去に記事1 / 過去の記事2
いろいろな過去に記事を拝見して、type属性にmoduleを設定しなければならないや、webpackを使用することが一般的など様々なヒントを見つけることができたのですが、
結果的にnpmでインストールしたものをどのようにimportするのかという体系を理解することができませんでした。
もし、このようなケースで学ぶべき方法や分野について知見のある方がいらっしゃれば、アドバイスをいただければ幸いです。
html
1<!doctype html> 2<html lang="ja"> 3<head> 4 <meta charset="utf-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1"> 6 <script src="./vendor/ckeditor5/ckeditor.js"></script> 7 <script src="./vendor/ckeditor5/translations/ja.js"></script> 8</head> 9<body> 10 <!-- The toolbar will be rendered in this container. --> 11 <div id="toolbar-container"></div> 12 13 <!-- This container will become the editable. --> 14 <div id="editor"> 15 <p>This is the initial editor content.</p> 16 </div> 17 18<!-- <script src="./vendor/@ckeditor/ckeditor5-table/src/table.js" charset="utf-8"></script> --> 19 20<script type="module"> 21 22import Table from './vendor/@ckeditor/ckeditor5-table/src/table.js'; 23import TableToolbar from './vendor/@ckeditor/ckeditor5-table/src/tabletoolbar.js'; 24import TableProperties from './vendor/@ckeditor/ckeditor5-table/src/tableproperties.js'; 25import TableCellProperties from './vendor/@ckeditor/ckeditor5-table/src/tablecellproperties.js'; 26 27 DecoupledEditor 28 .create( document.querySelector( '#editor' ),{ 29 plugins: [ Table, TableToolbar, TableProperties, TableCellProperties], 30 table: { 31 contentToolbar: [ 32 'tableColumn', 'tableRow', 'mergeTableCells', 33 'tableProperties', 'tableCellProperties' 34 ] 35 }, 36 language:'ja' 37 } ) 38 .then( editor => { 39 const toolbarContainer = document.querySelector( '#toolbar-container' ); 40 toolbarContainer.appendChild( editor.ui.view.toolbar.element ); 41 } ) 42 .catch( error => { 43 console.error( error ); 44 } ); 45</script> 46</body> 47</html>
よろしくお願い申し上げます。
回答1件
あなたの回答
tips
プレビュー