質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

Q&A

解決済

1回答

4779閲覧

TypeScript + rollupで「Note that you need plugins to import files that are not JavaScript 」というエラー

dada-sygnas

総合スコア34

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

0グッド

0クリップ

投稿2021/11/22 17:05

編集2021/11/22 17:38

TypeScript + rollup.js を使ってモジュールを自作しています。

モジュール自体のバンドルは問題ないのですが、デモ用スクリプトのみ下記のようなエラーが表示されてしまいます。

解決方法はありますでしょうか?

consloe

1demo/src/demo.ts → demo/build.js... 2[!] Error: Unexpected token (Note that you need plugins to import files that are not JavaScript) 3demo/src/demo.ts (1:10) 4 51: const test:number = 123; 6 ^

現状

フォルダ構成

/ +- src # モジュールのソース +- dist # 出力先 +- demo # デモ用ファイル | bundle.js # デモスクリプトの出力 +- src demo.js # デモスクリプトのソース

demo.ts

typescript

1const test:number = 123; 2console.log(test);

package.json 抜粋

json

1 "scripts": { 2 "demo": "rollup -c rollup.demo.config.js" 3 }, 4 "devDependencies": { 5 "@babel/core": "^7.16.0", 6 "@babel/preset-env": "^7.16.4", 7 "@rollup/plugin-babel": "^5.3.0", 8 "@rollup/plugin-commonjs": "^21.0.1", 9 "@rollup/plugin-node-resolve": "^13.0.6", 10 "@rollup/plugin-typescript": "^8.3.0", 11 "rollup": "^2.60.0", 12 "rollup-plugin-terser": "^7.0.2", 13 "tslib": "^2.3.1", 14 "typescript": "^4.5.2" 15 }

tsconfig.json

json

1{ 2 "compilerOptions": { 3 "target": "ESNext", 4 "module": "ES6", 5 "moduleResolution": "node", 6 "baseUrl": "./", 7 "paths": { 8 "@/*":["src/*"] 9 }, 10 "resolveJsonModule": true, 11 "allowJs": true, 12 "sourceMap": true, 13 "noEmit": true, 14 "isolatedModules": true, 15 "esModuleInterop": true, 16 "forceConsistentCasingInFileNames": true, 17 "strict": true, 18 "strictNullChecks": true, 19 "skipLibCheck": true 20 }, 21 "include": ["src/**/*.ts"], 22 "exclude": ["node_modules"] 23}

rollup.demo.config.js

javascript

1import pluginTypescript from "@rollup/plugin-typescript"; 2 3export default { 4 input: 'demo/src/demo.ts', 5 output: [{ 6 file: 'demo/build.js', 7 format: 'iife', 8 }], 9 plugins: [ 10 pluginTypescript({ 11 // 試してみたオプション 12 // declaration: false, 13 // isolatedModules: false, 14 // baseUrl: './demo', 15 // rootDir: 'demo/src', 16 // include: ['demo/src/**/*.ts'], 17 // paths: { 18 // '@/*':['demo/src/*'] 19 // }, 20 }), 21 ],};

説明

demo.ts のTypeScript構文、型指定の部分でエラーになります。
型指定を削除してJavaScriptの構文にすると問題なく出力されます。

demo.ts/demo/srcから/srcに移動すると問題なく出力されます。
(もちろんrollupの設定を同様に変更します)

@rollup/plugin-typescriptの設定でrootDirを指定すると良いという情報があったので試しましたが駄目でした。その他コメントアウトしているものも同様です。

補足

テストのため簡略化していますが、最終的にはモジュールのimportをしたり、babelを使ったりします。

補足2

色々試したり@rollup/plugin-typescriptのドキュメントを見て気付いたんですが、tsconfig.jsonの設定が全て使えるわけではないんですね(今さら)。

デモ用にtsconfig.demo.jsonを別途用意したら解決しそう……。試します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

解決しました!
デモスクリプト用にtsconfig.demo.jsonを用意し、下記を変更することで出力できました。

diff

1 "paths": { 2- "@/*":["src/*"] 3+ "@/*":["base/src/*"] 4 }, 5- "isolatedModules": true, 6+ // "isolatedModules": true, 7 "esModuleInterop": true, 8- "include": ["src/**/*.ts"], 9+ "include": ["demo/src/**/*.ts"],

rollup.demo.config.jsから指定します。

javascript

1 pluginTypescript({ 2 tsconfig: 'tsconfig.demo.json', 3 }),

投稿2021/11/22 17:46

dada-sygnas

総合スコア34

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問