Rollup-plugin-typescript2: Kesalahan dalam mode tontonan untuk file non-TypeScript

Dibuat pada 23 Sep 2017  ·  22Komentar  ·  Sumber: ezolenko/rollup-plugin-typescript2

Saya mengimpor file template Handlebars yang harus diabaikan oleh diagnostik.

Error: Could not find file: '/Users/mohamed/project/src/Views/Shared/spaces.hbs'.
    at getValidSourceFile (/Users/mohamed/project/node_modules/typescript/lib/typescript.js:91281:23)
    at Object.getSyntacticDiagnostics (/Users/mohamed/project/node_modules/typescript/lib/typescript.js:91504:52)
    at /Users/mohamed/project/node_modules/rollup-plugin-typescript2/dist/rollup-plugin-typescript2.cjs.js:629:74
    at /Users/mohamed/project/node_modules/rollup-plugin-typescript2/dist/rollup-plugin-typescript2.cjs.js:325:80
    at arrayEach (/Users/mohamed/project/node_modules/rollup-plugin-typescript2/node_modules/lodash/lodash.js:537:11)
    at Function.forEach (/Users/mohamed/project/node_modules/rollup-plugin-typescript2/node_modules/lodash/lodash.js:9359:14)
    at TsCache.walkTree (/Users/mohamed/project/node_modules/rollup-plugin-typescript2/dist/rollup-plugin-typescript2.cjs.js:325:9)
    at Object.ongenerate (/Users/mohamed/project/node_modules/rollup-plugin-typescript2/dist/rollup-plugin-typescript2.cjs.js:628:17)
    at bundle.plugins.forEach.plugin (/Users/mohamed/project/node_modules/rollup/dist/rollup.js:10507:16)
    at Array.forEach (<anonymous>)

Semua 22 komentar

Apakah Anda mengimpornya? Apakah itu terjadi di build non-jam tangan? Bisakah Anda memposting konfigurasi rollup dan tsconfig.json Anda?

Saya mengimpornya seperti ini:

import template from '../Views/Shared/ads.hbs';

dengan pernyataan di tempat lain:

declare module '*.hbs' {
  export default function (context: any): string;
}

Itu tidak terjadi dalam versi non-jam tangan.

rollup.config.js:

import commonjs from 'rollup-plugin-commonjs';
import handlebars from 'rollup-plugin-handlebars-plus';
import json from 'rollup-plugin-json';
import resolve from 'rollup-plugin-node-resolve';
import rootImport from 'rollup-plugin-root-import';
import typescript from 'rollup-plugin-typescript2';
import uglify from 'rollup-plugin-uglify';

const partialRoot = `${__dirname}/src/Views/Shared`;

export default {
  output: {
    format: 'iife'
  },
  plugins: [
    typescript({ clean: true }),
    json(),
    resolve(),
    commonjs(),
    rootImport({ root: partialRoot }),
    handlebars({
      helpers: '../../ts/handlebars',
      partialRoot: partialRoot,
      isPartial: () => true
    }),
    uglify()
  ]
}

tsconfig.json

{
  "compilerOptions": {
    "downlevelIteration": true,
    "lib": [
      "dom",
      "dom.iterable",
      "es2017"
    ],
    "moduleResolution": "node",
    "noImplicitReturns": true,
    "noUnusedLocals": true,
    "noUnusedParameters": true,
    "strict": true,
    "target": "es5"
  }
}

Saya tergoda untuk menyalahkan ini pada plugin setang, tetapi hanya dengan melihat kodenya saya tidak tahu mengapa itu gagal dengan cara ini. Apakah mungkin untuk mengurangi masalah menjadi repo mandiri kecil?

Dari jejak tumpukan tampaknya perpustakaan TypeScript tidak mengenalinya sebagai file sumber yang valid (yang sebenarnya tidak). Mungkin Anda dapat melewati file non-TypeScript saat berjalan di atas pohon? Saya akan mencoba memberikan contoh yang lebih kecil.

Ya, saya sudah melewatkan file non-TypeScript secara default, tapi ini TypeScript mencoba mengurai file TypeScript dan tidak menemukan salah satu impor. Setiap jam, plugin mengambil diagnostik untuk semua file TypeScript, bukan hanya yang dimodifikasi di putaran itu. Ini mungkin ada hubungannya dengan kesalahan. Apakah spaces.hbs ada di jalur itu secara normal, atau apakah itu artefak build?

Menambahkan ekstensi .ts memperbaikinya:

helpers: '../../ts/handlebars.ts',

Tidak yakin mengapa ini hanya terjadi dalam mode tontonan. Saya telah membuat repo kecil. Gunakan npm run build atau npm run watch .

Tidak dapat mereproduksi di repo Anda. Apakah npm install lalu npm run watch (build berhasil), main.ts yang dimodifikasi, dan watch berhasil membuat build lainnya. Memperkenalkan dan memperbaiki kesalahan juga berfungsi seperti yang diharapkan. Menjalankan arloji setelah build juga berfungsi.

Berjalan di windows, package.json tidak memiliki TypeScript yang disetel, sehingga mengambil versi 2.5.2 yang diinstal dengan vscode.

Apakah ada sesuatu yang spesifik yang perlu saya lakukan untuk memicunya?

Plugin setang tidak berfungsi di Windows secara default, sepertinya ada bug di dalamnya. Saya telah memodifikasi repo untuk melewati itu dan sekarang Anda harus dapat mereproduksinya.

Heh, Anda benar, ia mencoba memuat dan mengurai file .hbs.

Coba sekarang dengan cabang utama

Hah, ya sepertinya baik-baik saja sekarang :D

Yah, saya mengalami masalah dengan komponen Vue. Berikut jejak tumpukan.

[!] (rpt2 plugin) Error: Could not find file: '/my/path/src/components/Dashboard.vue?rollup-plugin-vue=script.ts'.
Error: Could not find file: '/my/path/src/components/Dashboard.vue?rollup-plugin-vue=script.ts'.

at getValidSourceFile (/my/path/node_modules/typescript/lib/typescript.js:114851:23)
at Object.getSyntacticDiagnostics (/my/path/node_modules/typescript/lib/typescript.js:115044:52)
at cache.walkTree (/my/path/node_modules/rollup-plugin-typescript2/src/index.ts:282:43)
at lodash_2 (/my/path/node_modules/rollup-plugin-typescript2/src/tscache.ts:174:61)

simpul: v10.13.0
naskah: v3.1.6

Dan ya, hanya dalam mode jam tangan.

@hiendv apakah Anda menggunakan versi terbaru dari plugin vue dan plugin ini?

Ya, saya bersedia.
Mungkin itu tidak relevan tetapi saya mencoba allowNonTsExtensions dan tetap cukup untuk sementara waktu :/ Tidak berfungsi setelah beberapa saat

@hiendv bisakah Anda membuat repo minimal dengan reproduksi?

Saya sedang melakukannya tetapi agak sulit karena tampilan kesalahan yang acak.

@ezolenko @ezolenko2 Bisakah Anda melihat ini? Terima kasih. https://github.com/hiendv/rpt2-vue-issue-32

Sunting 1: Tambahkan pemeran layar
peek

Oke, akhirnya berhasil, @hiendv bisakah Anda memeriksa apakah master bekerja untuk Anda?

Saya telah menguji cabang master untuk sementara waktu. Sejauh ini bagus. Saya pikir ini dia. terima kasih :D

Sudah dua hari. Semuanya baik-baik saja. Saya pikir Anda dapat merilis tambalan sekarang. Terima kasih.

Di 0.18.1 sekarang

Terima kasih.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat