Rollup-plugin-typescript2: rollup-plugin-vue@^4.0.1 兼容性

创建于 2018-05-06  ·  14评论  ·  资料来源: ezolenko/rollup-plugin-typescript2

会发生什么以及为什么会出错

在将 rollup-plugin-vue 升级到 v4 之前, https://github.com/alexsasharegan/vue-transmit 上的所有内容都可以正常构建。 升级到 v4 会在 rpt2 中产生错误。


终端输出

#########################################
# run the build with rollup-plugin-vue<strong i="12">@v3</strong>
#########################################
➜  vue-transmit git:(master) ✗ npm run build

> [email protected] prebuild /Users/alex/github.com/alexsasharegan/vue-transmit
> npm run clean


> [email protected] clean /Users/alex/github.com/alexsasharegan/vue-transmit
> scripts/clean.js


> [email protected] build /Users/alex/github.com/alexsasharegan/vue-transmit
> cross-env NODE_ENV=production rollup -c ./rollup.config.js


index.umd.ts → ./dist/vue-transmit.js...
created ./dist/vue-transmit.js in 2.4s

index.umd.ts → ./dist/vue-transmit.min.js...
created ./dist/vue-transmit.min.js in 2s

/Users/alex/github.com/alexsasharegan/vue-transmit/index.ts → ./dist/vue-transmit.esm.js...
created ./dist/vue-transmit.esm.js in 1.3s

/Users/alex/github.com/alexsasharegan/vue-transmit/index.ts → ./dist/vue-transmit.esm.min.js...
created ./dist/vue-transmit.esm.min.js in 1.4s

#########################################
# update rollup-plugin-vue
#########################################
➜  vue-transmit git:(master) npm i -D rollup-plugin-vue<strong i="13">@latest</strong>
+ [email protected]
added 3 packages from 3 contributors, removed 161 packages, updated 1 package and moved 7 packages in 11.165s

#########################################
# re-run the build
#########################################
➜  vue-transmit git:(master) ✗ npm run build

> [email protected] prebuild /Users/alex/github.com/alexsasharegan/vue-transmit
> npm run clean


> [email protected] clean /Users/alex/github.com/alexsasharegan/vue-transmit
> scripts/clean.js


> [email protected] build /Users/alex/github.com/alexsasharegan/vue-transmit
> cross-env NODE_ENV=production rollup -c ./rollup.config.js


index.umd.ts → ./dist/vue-transmit.js...
[!] (rpt2 plugin) Error: Could not find file: '/Users/alex/github.com/alexsasharegan/vue-transmit/src/components/VueTransmit.vue?{"type":"script"}#.ts'.
src/components/VueTransmit.vue?{"type":"script"}#.ts
Error: Could not find file: '/Users/alex/github.com/alexsasharegan/vue-transmit/src/components/VueTransmit.vue?{"type":"script"}#.ts'.
    at getValidSourceFile (/Users/alex/github.com/alexsasharegan/vue-transmit/node_modules/typescript/lib/typescript.js:103163:23)
    at Object.getEmitOutput (/Users/alex/github.com/alexsasharegan/vue-transmit/node_modules/typescript/lib/typescript.js:103506:30)
    at /Users/alex/github.com/alexsasharegan/vue-transmit/node_modules/rollup-plugin-typescript2/src/index.ts:192:16
    at TsCache.getCompiled (/Users/alex/github.com/alexsasharegan/vue-transmit/node_modules/rollup-plugin-typescript2/src/tscache.ts:175:24)
    at Object.transform (/Users/alex/github.com/alexsasharegan/vue-transmit/node_modules/rollup-plugin-typescript2/src/index.ts:190:20)
    at /Users/alex/github.com/alexsasharegan/vue-transmit/node_modules/rollup/dist/rollup.js:17316:48
    at <anonymous>
    at process._tickCallback (internal/process/next_tick.js:188:7)
    at Function.Module.runMain (module.js:695:11)
    at startup (bootstrap_node.js:188:16)
    at bootstrap_node.js:609:3

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] build: `cross-env NODE_ENV=production rollup -c ./rollup.config.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/alex/.npm/_logs/2018-05-05T22_34_16_368Z-debug.log
➜  vue-transmit git:(master) ✗

版本

  • 打字稿: 2.8.3
  • 汇总: 0.58.2
  • 汇总插件打字稿0.13.0

汇总配置文件


汇总配置文件

const path = require("path");
const ts = require("rollup-plugin-typescript2");
const vue = require("rollup-plugin-vue");
const uglify = require("rollup-plugin-uglify");

const isProduction = process.env.NODE_ENV === `production`;
const kebab_name = "vue-transmit";
const pascal_name = "VueTransmit";
const tsOptions = { verbosity: 3 };
const vueOptions = { css: path.join(__dirname, `dist/${kebab_name}.css`) };

module.exports = [
    {
        input: "index.umd.ts",
        output: {
            format: "umd",
            name: pascal_name,
            file: `./dist/${kebab_name}.js`,
            sourcemap: true,
            globals: {
                vue: "Vue",
                firebase: "firebase",
            },
        },
    },
    {
        input: path.resolve(__dirname, "index.ts"),
        output: {
            format: "es",
            file: `./dist/${kebab_name}.esm.js`,
            sourcemap: true,
        },
    },
].reduce((configs, { input, output }) => {
    configs.push({
        external: ["vue", "firebase"],
        input,
        output: { ...output },
        plugins: [ts(), vue(vueOptions)],
    });

    configs.push({
        external: ["vue", "firebase"],
        input,
        output: {
            ...output,
            file: replaceExtension(output.file, ".min.js"),
        },
        plugins: [ts(), vue(vueOptions), uglify()],
    });

    return configs;
}, []);

function replaceExtension(name, replacement) {
    return name.slice(0, name.lastIndexOf(".")) + replacement;
}

配置文件


配置文件

{
    "compileOnSave": false,
    "compilerOptions": {
        "outDir": "dist",
        "declarationDir": "dist",
        "allowSyntheticDefaultImports": true,
        "lib": ["dom", "esnext"],
        "target": "es5",
        "module": "es2015",
        "moduleResolution": "node",
        "declaration": true,
        "allowJs": false,
        "experimentalDecorators": true,
        "emitDecoratorMetadata": true,
        "noImplicitAny": true,
        "strictNullChecks": true,
        "noUnusedLocals": true,
        "noUnusedParameters": true,
        "removeComments": false,
        "preserveConstEnums": false,
        "sourceMap": true,
        "skipLibCheck": true,
        "strict": true
    },
    "include": ["src", "./index.ts", "./index.umd.ts"],
    "exclude": ["node_modules", "vendor", "dist"]
}

包.json


包.json

{
  "name": "vue-transmit",
  "version": "9.0.0-alpha.11",
  "description": "Vue.js drag & drop uploader based on Dropzone.js",
  "module": "dist/vue-transmit.esm.js",
  "main": "dist/vue-transmit.js",
  "types": "dist/index.d.ts",
  "keywords": [
    "dragndrop",
    "drag and drop",
    "file upload",
    "upload"
  ],
  "directories": {
    "test": "test"
  },
  "files": [
    "dist"
  ],
  "scripts": {
    "clean": "scripts/clean.js",
    "predev": "npm run clean",
    "dev": "cross-env NODE_ENV=development rollup -c ./rollup.config.js",
    "prebuild": "npm run clean",
    "build": "cross-env NODE_ENV=production rollup -c ./rollup.config.js",
    "prepublishOnly": "npm run build",
    "test:site": "php -S localhost:3030 -t ./test/",
    "test:jest": "jest --coverage",
    "test": "npm run test:jest",
    "precommit": "pretty-quick --staged",
    "size:min": "cat dist/vue-transmit.esm.js | wc -c",
    "size:gzip": "gzip -c dist/vue-transmit.esm.js | wc -c",
    "release:alpha": "standard-version --prerelease alpha",
    "postrelease:alpha": "git push --follow-tags origin master && npm publish --tag prerelease",
    "release:beta": "standard-version --prerelease beta",
    "postrelease:beta": "git push --follow-tags origin master && npm publish --tag prerelease",
    "release": "standard-version",
    "postrelease": "git push --follow-tags origin master && npm publish"
  },
  "jest": {
    "moduleFileExtensions": [
      "ts",
      "tsx",
      "js"
    ],
    "transform": {
      "\\.(ts|tsx)$": "<rootDir>/node_modules/ts-jest/preprocessor.js"
    },
    "testMatch": [
      "**/__tests__/*.(ts|js)",
      "**/?(*.)(spec|test).(js|ts)"
    ],
    "coverageDirectory": "coverage",
    "collectCoverage": true,
    "mapCoverage": true
  },
  "peerDependencies": {
    "vue": "^2.5.0"
  },
  "dependencies": {},
  "devDependencies": {
    "@types/jest": "^22.2.3",
    "cross-env": "^5.1.4",
    "firebase": "^4.13.1",
    "husky": "^0.14.3",
    "jest": "^22.4.3",
    "lodash": "^4.17.10",
    "postcss": "^6.0.22",
    "prettier": "^1.12.1",
    "pretty-quick": "^1.4.1",
    "rimraf": "^2.6.2",
    "rollup": "^0.58.2",
    "rollup-plugin-postcss": "^1.6.1",
    "rollup-plugin-typescript2": "^0.13.0",
    "rollup-plugin-uglify": "^3.0.0",
    "rollup-plugin-vue": "^4.0.1",
    "standard-version": "^4.3.0",
    "ts-jest": "^22.4.5",
    "typescript": "^2.8.3",
    "uglify-js": "^3.3.23",
    "vue": "^2.5.16",
    "vue-template-compiler": "^2.5.16"
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/alexsasharegan/vue-transmit.git"
  },
  "author": "Alex Regan <[email protected]> (https://github.com/alexsasharegan)",
  "license": "MIT",
  "bugs": {
    "url": "https://github.com/alexsasharegan/vue-dropzone/issues"
  },
  "homepage": "https://github.com/alexsasharegan/vue-dropzone#readme"
}

详细程度为 3 的插件输出


输出

➜  vue-transmit git:(master) ✗ npm run build

> [email protected] prebuild /Users/alex/github.com/alexsasharegan/vue-transmit
> npm run clean


> [email protected] clean /Users/alex/github.com/alexsasharegan/vue-transmit
> scripts/clean.js


> [email protected] build /Users/alex/github.com/alexsasharegan/vue-transmit
> cross-env NODE_ENV=production rollup -c ./rollup.config.js


index.umd.ts → ./dist/vue-transmit.js...
rpt2: typescript version: 2.8.3
rpt2: rollup-plugin-typescript2 version: 0.13.0
rpt2: plugin options:
{
    "verbosity": 3,
    "clean": true,
    "check": true,
    "cacheRoot": "/Users/alex/github.com/alexsasharegan/vue-transmit/.rpt2_cache",
    "include": [
        "*.ts+(|x)",
        "**/*.ts+(|x)"
    ],
    "exclude": [
        "*.d.ts",
        "**/*.d.ts"
    ],
    "abortOnError": true,
    "rollupCommonJSResolveHack": false,
    "typescript": "version 2.8.3",
    "useTsconfigDeclarationDir": false,
    "tsconfigOverride": {},
    "tsconfigDefaults": {}
}
rpt2: rollup config:
{
    "external": [
        "vue",
        "firebase",
        "",
        ""
    ],
    "input": "index.umd.ts",
    "chunkGroupingSize": 5000,
    "perf": false,
    "plugins": [
        {
            "name": "rpt2"
        },
        {
            "name": "vue.delegate"
        }
    ],
    "entry": "index.umd.ts"
}
rpt2: built-in options overrides: {
    "noEmitHelpers": false,
    "importHelpers": true,
    "noResolve": false,
    "noEmit": false,
    "outDir": "/Users/alex/github.com/alexsasharegan/vue-transmit",
    "moduleResolution": 2,
    "declarationDir": "/Users/alex/github.com/alexsasharegan/vue-transmit"
}
rpt2: parsed tsconfig: {
    "options": {
        "module": 5,
        "outDir": "/Users/alex/github.com/alexsasharegan/vue-transmit",
        "declarationDir": "/Users/alex/github.com/alexsasharegan/vue-transmit",
        "allowSyntheticDefaultImports": true,
        "lib": [
            "lib.dom.d.ts",
            "lib.esnext.d.ts"
        ],
        "target": 1,
        "moduleResolution": 2,
        "declaration": true,
        "allowJs": false,
        "experimentalDecorators": true,
        "emitDecoratorMetadata": true,
        "noImplicitAny": true,
        "strictNullChecks": true,
        "noUnusedLocals": true,
        "noUnusedParameters": true,
        "removeComments": false,
        "preserveConstEnums": false,
        "sourceMap": true,
        "skipLibCheck": true,
        "strict": true,
        "noEmitHelpers": false,
        "importHelpers": true,
        "noResolve": false,
        "noEmit": false,
        "configFilePath": "/Users/alex/github.com/alexsasharegan/vue-transmit/tsconfig.json"
    },
    "fileNames": [
        "/Users/alex/github.com/alexsasharegan/vue-transmit/src/global.d.ts",
        "/Users/alex/github.com/alexsasharegan/vue-transmit/src/index.ts",
        "/Users/alex/github.com/alexsasharegan/vue-transmit/src/classes/VTransmitFile.ts",
        "/Users/alex/github.com/alexsasharegan/vue-transmit/src/classes/VTransmitUploadContext.ts",
        "/Users/alex/github.com/alexsasharegan/vue-transmit/src/core/interfaces.ts",
        "/Users/alex/github.com/alexsasharegan/vue-transmit/src/core/utils.ts",
        "/Users/alex/github.com/alexsasharegan/vue-transmit/src/upload-adapters/firebase.ts",
        "/Users/alex/github.com/alexsasharegan/vue-transmit/src/upload-adapters/xhr.ts",
        "/Users/alex/github.com/alexsasharegan/vue-transmit/index.ts",
        "/Users/alex/github.com/alexsasharegan/vue-transmit/index.umd.ts"
    ],
    "typeAcquisition": {
        "enable": false,
        "include": [],
        "exclude": []
    },
    "raw": {
        "compilerOptions": {
            "module": "es2015",
            "outDir": "dist",
            "declarationDir": "dist",
            "allowSyntheticDefaultImports": true,
            "lib": [
                "dom",
                "esnext"
            ],
            "target": "es5",
            "moduleResolution": "node",
            "declaration": true,
            "allowJs": false,
            "experimentalDecorators": true,
            "emitDecoratorMetadata": true,
            "noImplicitAny": true,
            "strictNullChecks": true,
            "noUnusedLocals": true,
            "noUnusedParameters": true,
            "removeComments": false,
            "preserveConstEnums": false,
            "sourceMap": true,
            "skipLibCheck": true,
            "strict": true
        },
        "compileOnSave": false,
        "include": [
            "src",
            "./index.ts",
            "./index.umd.ts"
        ],
        "exclude": [
            "node_modules",
            "vendor",
            "dist"
        ]
    },
    "errors": [],
    "wildcardDirectories": {},
    "compileOnSave": false,
    "configFileSpecs": {
        "includeSpecs": [
            "src",
            "./index.ts",
            "./index.umd.ts"
        ],
        "excludeSpecs": [
            "node_modules",
            "vendor",
            "dist"
        ],
        "validatedIncludeSpecs": [
            "src",
            "./index.ts",
            "./index.umd.ts"
        ],
        "validatedExcludeSpecs": [
            "node_modules",
            "vendor",
            "dist"
        ],
        "wildcardDirectories": {}
    }
}
rpt2: included:
'[
    "*.ts+(|x)",
    "**/*.ts+(|x)"
]'
rpt2: excluded:
'[
    "*.d.ts",
    "**/*.d.ts"
]'
rpt2: Ambient types:
rpt2:     /Users/alex/github.com/alexsasharegan/vue-transmit/src/global.d.ts
rpt2:     /Users/alex/github.com/alexsasharegan/vue-transmit/node_modules/@types/estree/index.d.ts
rpt2:     /Users/alex/github.com/alexsasharegan/vue-transmit/node_modules/@types/jest/index.d.ts
rpt2:     /Users/alex/github.com/alexsasharegan/vue-transmit/node_modules/@types/node/index.d.ts
rpt2: ambient types changed, redoing all semantic diagnostics
rpt2: cleaning cache: /Users/alex/github.com/alexsasharegan/vue-transmit/.rpt2_cache/2e114634f27dc3edb218e480a57846efae52f054
rpt2: transpiling '/Users/alex/github.com/alexsasharegan/vue-transmit/index.umd.ts'
rpt2:     cache: '49761a9d3cb78f1200fa5ea2cf4554c239130b2b'
rpt2:     cache miss
rpt2:     cache: '49761a9d3cb78f1200fa5ea2cf4554c239130b2b'
rpt2:     cache miss
rpt2:     cache: '49761a9d3cb78f1200fa5ea2cf4554c239130b2b'
rpt2:     cache miss
rpt2: generated declarations for '/Users/alex/github.com/alexsasharegan/vue-transmit/index.umd.ts'
rpt2: dependency '/Users/alex/github.com/alexsasharegan/vue-transmit/index.ts'
rpt2:     imported by '/Users/alex/github.com/alexsasharegan/vue-transmit/index.umd.ts'
rpt2: resolving './index'
rpt2:     to '/Users/alex/github.com/alexsasharegan/vue-transmit/index.ts'
rpt2: transpiling '/Users/alex/github.com/alexsasharegan/vue-transmit/index.ts'
rpt2:     cache: 'cfdd26383d14689fe5e8078105fc3da90ae47d57'
rpt2:     cache miss
rpt2:     cache: 'cfdd26383d14689fe5e8078105fc3da90ae47d57'
rpt2:     cache miss
rpt2:     cache: 'cfdd26383d14689fe5e8078105fc3da90ae47d57'
rpt2:     cache miss
rpt2: generated declarations for '/Users/alex/github.com/alexsasharegan/vue-transmit/index.ts'
rpt2: dependency '/Users/alex/github.com/alexsasharegan/vue-transmit/src/index.ts'
rpt2:     imported by '/Users/alex/github.com/alexsasharegan/vue-transmit/index.ts'
rpt2: resolving './src/index'
rpt2:     to '/Users/alex/github.com/alexsasharegan/vue-transmit/src/index.ts'
rpt2: dependency '/Users/alex/github.com/alexsasharegan/vue-transmit/src/upload-adapters/xhr.ts'
rpt2:     imported by '/Users/alex/github.com/alexsasharegan/vue-transmit/index.ts'
rpt2: resolving './src/upload-adapters/xhr'
rpt2:     to '/Users/alex/github.com/alexsasharegan/vue-transmit/src/upload-adapters/xhr.ts'
rpt2: dependency '/Users/alex/github.com/alexsasharegan/vue-transmit/src/upload-adapters/firebase.ts'
rpt2:     imported by '/Users/alex/github.com/alexsasharegan/vue-transmit/index.ts'
rpt2: resolving './src/upload-adapters/firebase'
rpt2:     to '/Users/alex/github.com/alexsasharegan/vue-transmit/src/upload-adapters/firebase.ts'
rpt2: dependency '/Users/alex/github.com/alexsasharegan/vue-transmit/src/core/utils.ts'
rpt2:     imported by '/Users/alex/github.com/alexsasharegan/vue-transmit/index.ts'
rpt2: resolving './src/core/utils'
rpt2:     to '/Users/alex/github.com/alexsasharegan/vue-transmit/src/core/utils.ts'
rpt2: transpiling '/Users/alex/github.com/alexsasharegan/vue-transmit/src/index.ts'
rpt2:     cache: '07a85db626deafe67a055f45cf879446275068d6'
rpt2:     cache miss
rpt2:     cache: '07a85db626deafe67a055f45cf879446275068d6'
rpt2:     cache miss
rpt2:     cache: '07a85db626deafe67a055f45cf879446275068d6'
rpt2:     cache miss
rpt2: generated declarations for '/Users/alex/github.com/alexsasharegan/vue-transmit/src/index.ts'
rpt2: transpiling '/Users/alex/github.com/alexsasharegan/vue-transmit/src/upload-adapters/xhr.ts'
rpt2:     cache: '069a4a7a8969f2603cf55cc36d41ce843fdd5290'
rpt2:     cache miss
rpt2:     cache: '069a4a7a8969f2603cf55cc36d41ce843fdd5290'
rpt2:     cache miss
rpt2:     cache: '069a4a7a8969f2603cf55cc36d41ce843fdd5290'
rpt2:     cache miss
rpt2: generated declarations for '/Users/alex/github.com/alexsasharegan/vue-transmit/src/upload-adapters/xhr.ts'
rpt2: transpiling '/Users/alex/github.com/alexsasharegan/vue-transmit/src/upload-adapters/firebase.ts'
rpt2:     cache: '46456584c1a94aea483510cb2cd922dc05102338'
rpt2:     cache miss
rpt2:     cache: '46456584c1a94aea483510cb2cd922dc05102338'
rpt2:     cache miss
rpt2:     cache: '46456584c1a94aea483510cb2cd922dc05102338'
rpt2:     cache miss
rpt2: generated declarations for '/Users/alex/github.com/alexsasharegan/vue-transmit/src/upload-adapters/firebase.ts'
rpt2: transpiling '/Users/alex/github.com/alexsasharegan/vue-transmit/src/core/utils.ts'
rpt2:     cache: '35939121a8c0293ccd932395131ec5df0105f22c'
rpt2:     cache miss
rpt2:     cache: '35939121a8c0293ccd932395131ec5df0105f22c'
rpt2:     cache miss
rpt2:     cache: '35939121a8c0293ccd932395131ec5df0105f22c'
rpt2:     cache miss
rpt2: generated declarations for '/Users/alex/github.com/alexsasharegan/vue-transmit/src/core/utils.ts'
rpt2: dependency '/Users/alex/github.com/alexsasharegan/vue-transmit/src/core/utils.ts'
rpt2:     imported by '/Users/alex/github.com/alexsasharegan/vue-transmit/src/upload-adapters/xhr.ts'
rpt2: resolving '../core/utils'
rpt2:     to '/Users/alex/github.com/alexsasharegan/vue-transmit/src/core/utils.ts'
rpt2: dependency '/Users/alex/github.com/alexsasharegan/vue-transmit/src/core/utils.ts'
rpt2:     imported by '/Users/alex/github.com/alexsasharegan/vue-transmit/src/upload-adapters/firebase.ts'
rpt2: resolving '../core/utils'
rpt2:     to '/Users/alex/github.com/alexsasharegan/vue-transmit/src/core/utils.ts'
rpt2: transpiling '/Users/alex/github.com/alexsasharegan/vue-transmit/src/components/VueTransmit.vue?{"type":"script"}#.ts'
rpt2:     cache: 'c3af5fe8e2fa9475cb81f40c13777e7d9cd67017'
rpt2:     cache miss
[!] (rpt2 plugin) Error: Could not find file: '/Users/alex/github.com/alexsasharegan/vue-transmit/src/components/VueTransmit.vue?{"type":"script"}#.ts'.
src/components/VueTransmit.vue?{"type":"script"}#.ts
Error: Could not find file: '/Users/alex/github.com/alexsasharegan/vue-transmit/src/components/VueTransmit.vue?{"type":"script"}#.ts'.
    at getValidSourceFile (/Users/alex/github.com/alexsasharegan/vue-transmit/node_modules/typescript/lib/typescript.js:103163:23)
    at Object.getEmitOutput (/Users/alex/github.com/alexsasharegan/vue-transmit/node_modules/typescript/lib/typescript.js:103506:30)
    at /Users/alex/github.com/alexsasharegan/vue-transmit/node_modules/rollup-plugin-typescript2/src/index.ts:192:16
    at TsCache.getCompiled (/Users/alex/github.com/alexsasharegan/vue-transmit/node_modules/rollup-plugin-typescript2/src/tscache.ts:175:24)
    at Object.transform (/Users/alex/github.com/alexsasharegan/vue-transmit/node_modules/rollup-plugin-typescript2/src/index.ts:190:20)
    at /Users/alex/github.com/alexsasharegan/vue-transmit/node_modules/rollup/dist/rollup.js:17316:48
    at <anonymous>
    at process._tickCallback (internal/process/next_tick.js:188:7)
    at Function.Module.runMain (module.js:695:11)
    at startup (bootstrap_node.js:188:16)
    at bootstrap_node.js:609:3

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] build: `cross-env NODE_ENV=production rollup -c ./rollup.config.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/alex/.npm/_logs/2018-05-05T22_55_28_977Z-debug.log

最有用的评论

@alexsasharegan好的,比我想象的要简单得多,我没有将缓存模块的更新列表返回到打字稿,所以它试图自己找到模块。 现在应该修复了,我稍后会发布。

所有14条评论

如果你想使用任何调试魔法,你可以克隆 repo 并安装最新的 rollup-plugin-vue。

git clone [email protected]:alexsasharegan/vue-transmit.git
cd vue-transmit
npm i
npm i -D rollup-plugin-vue@^4.0.1
npm run build

@alexsasharegan看起来像 vue 插件应该生成一个 ts 文件,对吧? 你可以尝试将vue(vueOptions)之前ts()在你的配置?

刚刚尝试使用[email protected] ,并收到错误。 我相信 TS 语法正在扼杀其他插件。 看看输出:

➜  vue-transmit git:(master) ✗ npm run build

> [email protected] prebuild /Users/alex/github.com/alexsasharegan/vue-transmit
> npm run clean


> [email protected] clean /Users/alex/github.com/alexsasharegan/vue-transmit
> scripts/clean.js


> [email protected] build /Users/alex/github.com/alexsasharegan/vue-transmit
> cross-env NODE_ENV=production rollup -c ./rollup.config.js


src/index.umd.ts → ./dist/vue-transmit.js...
[!] Error: Unexpected token
src/components/VueTransmit.vue.ts?rollup_plugin_vue=%7B%22type%22%3A%22script%22%2C%22lang%22%3A%22ts%22%7D (86:5)
84: import { DriverInterface, DriverConstructor } from "../core/interfaces";
85:
86: type FileSystemEntry = WebKitFileEntry | WebKitDirectoryEntry;
         ^
87:
88: export default Vue.extend({

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] build: `cross-env NODE_ENV=production rollup -c ./rollup.config.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/alex/.npm/_logs/2018-05-07T16_54_41_779Z-debug.log

尝试将 rpt2 的包含过滤器修改为类似的内容: include: ["*.ts+(|x)", "**/*.ts+(|x)", RegExp(".*\.ts\?.*")],

["*.ts+(|x)", "**/*.ts+(|x)"]是默认值)

现在它找不到文件:

➜  vue-transmit git:(master) ✗ npm run build

> [email protected] prebuild /Users/alex/github.com/alexsasharegan/vue-transmit
> npm run clean


> [email protected] clean /Users/alex/github.com/alexsasharegan/vue-transmit
> scripts/clean.js


> [email protected] build /Users/alex/github.com/alexsasharegan/vue-transmit
> cross-env NODE_ENV=production rollup -c ./rollup.config.js


src/index.umd.ts → ./dist/vue-transmit.js...
[!] (rpt2 plugin) Error: Could not find file: '/Users/alex/github.com/alexsasharegan/vue-transmit/src/components/VueTransmit.vue'.
src/components/VueTransmit.vue
Error: Could not find file: '/Users/alex/github.com/alexsasharegan/vue-transmit/src/components/VueTransmit.vue'.
    at getValidSourceFile (/Users/alex/github.com/alexsasharegan/vue-transmit/node_modules/typescript/lib/typescript.js:103163:23)
    at Object.getEmitOutput (/Users/alex/github.com/alexsasharegan/vue-transmit/node_modules/typescript/lib/typescript.js:103506:30)
    at /Users/alex/github.com/alexsasharegan/vue-transmit/node_modules/rollup-plugin-typescript2/src/index.ts:192:16
    at TsCache.getCompiled (/Users/alex/github.com/alexsasharegan/vue-transmit/node_modules/rollup-plugin-typescript2/src/tscache.ts:175:24)
    at Object.transform (/Users/alex/github.com/alexsasharegan/vue-transmit/node_modules/rollup-plugin-typescript2/src/index.ts:190:20)
    at /Users/alex/github.com/alexsasharegan/vue-transmit/node_modules/rollup/dist/rollup.js:17316:48
    at <anonymous>
    at process._tickCallback (internal/process/next_tick.js:188:7)
    at Function.Module.runMain (module.js:695:11)
    at startup (bootstrap_node.js:188:16)
    at bootstrap_node.js:609:3

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] build: `cross-env NODE_ENV=production rollup -c ./rollup.config.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/alex/.npm/_logs/2018-05-07T18_28_09_072Z-debug.log

作为参考,这里是文件:

├── classes
│   ├── VTransmitFile.ts
│   └── VTransmitUploadContext.ts
├── components
│   └── VueTransmit.vue
├── core
│   ├── interfaces.ts
│   └── utils.ts
├── global.d.ts
├── index.ts
├── index.umd.ts
└── upload-adapters
    ├── firebase.ts
    ├── index.ts
    └── xhr.ts

我无法在我的环境(win10、终端或 git bash)中构建您的项目。

$ NODE_ENV=production ./node_modules/.bin/rollup -c ./rollup.config.js

src/index.umd.ts → ./dist/vue-transmit.js...
[!] TypeError: Cannot read property 'script' of undefined
TypeError: Cannot read property 'script' of undefined
    at resolveVuePart (E:\source\scr\vue-transmit\node_modules\rollup-plugin-vue\src\utils.js:68:16)
    at resolveId (E:\source\scr\vue-transmit\node_modules\rollup-plugin-vue\src\index.js:45:25)
    at E:\source\scr\vue-transmit\node_modules\rollup\dist\rollup.js:5977:113
    at <anonymous>
    at process._tickCallback (internal/process/next_tick.js:188:7)
    at Function.Module.runMain (module.js:695:11)
    at startup (bootstrap_node.js:188:16)
    at bootstrap_node.js:609:3

是的,如果我切换回"rollup-plugin-vue": "^3.0.0" ,它会起作用。

也许用rollup-plugin-vue也打开一个错误? 他们在 v4 中所做的任何更改都会破坏一些东西。

我今天或明天会尝试将这个问题链接到那里。

有点晚了,但我将问题链接到rollup-plugin-vue

.vue文件可以有一个<script lang="ts">...</script>块。

这些块被转换为虚拟模块。 例如: ./foo/bar.vue Typescript 块将由./foo/bar.vue?rollup-plugin-vue=script.ts

在夹具(https://github.com/vuejs/rollup-plugin-vue/blob/master/test/fixtures/with-script-typescript.vue)测试的情况下正常工作与https://github.com/rollup/汇总插件打字稿。

嗯,是的,看起来 typescript 正试图直接加载该文件,而不是出于某种原因向我请求快照。

这方面有什么进展吗? https://github.com/vuejs/rollup-plugin-vue/issues/204上的人很好奇它是否得到解决。 这是他们的问题,还是 TS 插件的问题?

抱歉好久没看,我会尽快再看。

@alexsasharegan好的,比我想象的要简单得多,我没有将缓存模块的更新列表返回到打字稿,所以它试图自己找到模块。 现在应该修复了,我稍后会发布。

我在观看模式下遇到这种情况,但它是随机发生的

此页面是否有帮助?
0 / 5 - 0 等级