2017-12-26 10 views
0

Ich verwende rollup, um mein Projekt zu bündeln.Fehler "Version" ist ein erforderliches Argument beim Erstellen mit Rollup

Am Anfang funktionierte alles gut, aber ich weiß nicht, was ich in meiner Konfig geändert habe, fing ich an, diesen Fehler beim Ausführen rollup -c zu bekommen.

[!] Error: "version" is a required argument. 
Error: "version" is a required argument. 
    at Object.getArg (/home/programmersedge/.nvm/versions/node/v6.11.1/lib/node_modules/rollup/dist/rollup.js:14625:11) 
    at SourceMapConsumer$1.BasicSourceMapConsumer (/home/programmersedge/.nvm/versions/node/v6.11.1/lib/node_modules/rollup/dist/rollup.js:15763:22) 
    at new SourceMapConsumer$1 (/home/programmersedge/.nvm/versions/node/v6.11.1/lib/node_modules/rollup/dist/rollup.js:15491:7) 
    at Module.getOriginalLocation (/home/programmersedge/.nvm/versions/node/v6.11.1/lib/node_modules/rollup/dist/rollup.js:16925:16) 
    at Module.error (/home/programmersedge/.nvm/versions/node/v6.11.1/lib/node_modules/rollup/dist/rollup.js:16942:26) 
    at CallExpression.bindNode (/home/programmersedge/.nvm/versions/node/v6.11.1/lib/node_modules/rollup/dist/rollup.js:12326:17) 
    at CallExpression.bind (/home/programmersedge/.nvm/versions/node/v6.11.1/lib/node_modules/rollup/dist/rollup.js:11415:8) 
    at eachChild.child (/home/programmersedge/.nvm/versions/node/v6.11.1/lib/node_modules/rollup/dist/rollup.js:11433:34) 
    at keys.forEach.key (/home/programmersedge/.nvm/versions/node/v6.11.1/lib/node_modules/rollup/dist/rollup.js:11450:5) 
    at Array.forEach (native) 

Hier ist meine rollup.config.js

import resolve  from 'rollup-plugin-node-resolve' 
import babel  from 'rollup-plugin-babel' 
import filesize  from 'rollup-plugin-filesize' 
import typescript from 'rollup-plugin-typescript2' 
import commonjs  from 'rollup-plugin-commonjs' 
import postcss  from 'rollup-plugin-postcss-modules' 
import autoprefixer from 'autoprefixer' 
import sass   from "node-sass" 

const preprocessor = (content, id) => new Promise((resolve, reject) => { 
    sass.render({ 
     file: id, 
     sourceMap: "string", 
     sourceComments: true, 
     sourceMapContents: true, 
     outputStyle: "compressed" 
    },(err, result) => { 
     if (err) { 
      return reject(err); 
     } 
     resolve({code: result.css.toString()}); 
    }); 
}); 

export default { 
    input: 'src/index.ts', 
    output: { 
     file: 'lib/index.js', 
     format: 'umd', 
     globals: { 
      ... 
     }, 
     sourcemap: true, 
    }, 
    external: [ 
     ... 
    ], 
    plugins: [ 
     resolve(), 
     postcss({ 
      preprocessor, 
      plugins: [ 
       autoprefixer(), 
      ], 
      extensions: ['.scss'], 
      writeDefinitions: true, 
      postcssModulesOptions: { 
       generateScopedName: '[name]__[local]___[hash:base64:5]' 
      } 
     }), 
     typescript({ 
      tsconfigOverride: { 
       compilerOptions: { 
        declaration: true, 
        moduleResolution: "node" 
       } 
      }, 
      rollupCommonJSResolveHack: true, 
      abortOnError: false, 
      typescript: require('typescript'), 
     }), 
     commonjs(), 
     babel({ 
      exclude: 'node_modules/**' 
     }), 
     filesize() 
    ], 
    watch: { 
     include: 'src/**' 
    } 
    }; 

ich nicht in der Lage bin, um herauszufinden, wo das version Argument oder in meinem Setup gehen sollte, was mit meinem Setup falsch ist. Kann mir hier jemand helfen?

Antwort

1

Wie auch immer ich das Problem behoben.

Hier ist die Erklärung für die Ausgabe

Der gemeldete Fehler ist ein Fehler, der auftritt, wenn eine Quelle Karte zu verwenden versuchen, wenn andere Fehler meldet. Der tatsächliche Fehler, der auftritt, ist wahrscheinlich CANNOT_CALL_NAMESPACE, was von meinem Verständnis bedeutet, dass Sie versuchen, eine Variable aufzurufen, an die Sie * in einem Import gebunden haben.

und hier ist die GitHub Issue, auf die Sie sich beziehen können.

+0

Können Sie bitte Ihre Antwort erweitern, um zu zeigen, wie Sie das Problem behoben haben? Ich habe die gleiche Sache getroffen und ich habe keine Ahnung, wo Quellkarten deaktiviert werden sollen, weil ich sie nicht von Anfang an verwende. –

+0

@ TomášHübelbauer sicher ... Ich nehme an, Sie versuchen, einen Standard-Import eines Pakets ... Aber hat keine Standard-Importe, so sollten Sie 'Import * als Modul von & quot; Paket & quot;' zu sein präzise ... Ich hatte Probleme mit dem ** classnames ** -Paket. Um das Problem zu lösen, musste ich 'import * als Klassennamen von 'Klassennamen' anstelle von 'Klassennamen von' Klassennamen importieren 'ausführen, wenn Sie noch Probleme haben ... Dann antworten Sie. – besrabasant

+0

Könnten Sie bitte versuchen, zu sehen, ob Sie Rollup mit [qrcode-generator] (https://github.com/kazuhikoarase/qrcode-generator/blob/master/js/qrcode.d.ts) verwenden können? InTypeScript kann ich 'import * als qrcode von 'qrcode-generator'' kein Problem 'import qrcode von 'qrcode-generator' sagen, ist nicht für die Typen, aber mit Rollup und Rollup-Plugin-typescript2 bekam ich dieses Problem mit der '*' Variante. –

1

Für jeden, der diese trifft, gibt es jetzt eine PR offen mit einem fix:

https://github.com/rollup/rollup/pull/2012

Auch für viele Menschen, sobald diese festgelegt ist, wird es das eigentliche Problem offenbart: eine nicht nennen kann Namensraum.

ich ein Update für das in its own Rollup issue gefunden (geschieht mit Typoskript):

import * as something_ from 'something'; 
const something: typeof something_ = something; 
// Now you can use `soemthing` as usual 

Dies geschieht nur, wenn Typoskript durch Rollup verwendet wird, nicht wenn tsc direkt ausgeführt wird.

Verwandte Themen