当前位置: 首页 > 知识库问答 >
问题:

汇总未生成typescript sourcemap

王棋
2023-03-14

我使用的是精简型脚本SCS的汇总。我的问题是我无法生成源地图。

以下是我的汇总配置文件:

import svelte from 'rollup-plugin-svelte'
import resolve from '@rollup/plugin-node-resolve'
import commonjs from '@rollup/plugin-commonjs'
import livereload from 'rollup-plugin-livereload'
import { terser } from 'rollup-plugin-terser'
import typescript from '@rollup/plugin-typescript'
import alias from '@rollup/plugin-alias'
    
const production = !process.env.ROLLUP_WATCH
const path = require('path').resolve(__dirname, 'src')
const svelteOptions = require('./svelte.config')
    
function serve() {
    let server
    
    function toExit() {
        if (server) server.kill(0)
    }
    
    return {
        writeBundle() {
            if (server) return
            server = require('child_process').spawn(
                'yarn',
                ['run', 'start', '--', '--dev'],
                {
                    stdio: ['ignore', 'inherit', 'inherit'],
                    shell: true,
                }
            )
    
            process.on('SIGTERM', toExit)
            process.on('exit', toExit)
        },
    }
}
    
export default {
    input: 'src/main.ts',
    output: {
        sourcemap: true,
        format: 'iife',
        name: 'app',
        file: 'public/build/bundle.js',
    },
    plugins: [
        alias({
            entries: [
                { find: '@app', replacement: `${path}` },
                { find: '@components', replacement: `${path}/components` },
                { find: '@includes', replacement: `${path}/includes` },
                { find: '@styles', replacement: `${path}/styles` },
                { find: '@pages', replacement: `${path}/pages` },
            ],
        }),
        svelte(svelteOptions),
    
        // If you have external dependencies installed from
        // npm, you'll most likely need these plugins. In
        // some cases you'll need additional configuration -
        // consult the documentation for details:
        // https://github.com/rollup/plugins/tree/master/packages/commonjs
        resolve({
            browser: true,
            dedupe: ['svelte'],
        }),
        commonjs(),
        typescript({ sourceMap: !production }),
    
        // In dev mode, call `npm run start` once
        // the bundle has been generated
        !production && serve(),
    
        // Watch the `public` directory and refresh the
        // browser on changes when not in production
        !production && livereload('public'),
    
        // If we're building for production (npm run build
        // instead of npm run dev), minify
        production && terser(),
    ],
    watch: {
        clearScreen: false,
    },
}

我不确定我到底做错了什么。下面是我正在使用的代码的链接。任何帮助都将不胜感激!

共有3个答案

陈霄
2023-03-14

对于任何使用简洁而不是苗条的人来说,这为我解决了同样的问题:

import sourcemaps from 'rollup-plugin-sourcemaps';
import { terser } from 'rollup-plugin-terser';
import typescript from '@rollup/plugin-typescript';

export default [
  {
    input: 'dist/index.js',
    output: [
      {
        file: 'dist/cjs/index.js',
        format: 'cjs'
      },
      {
        file: 'dist/fesm2015/index.js',
        format: 'es'
      }
    ],
    plugins: [
      sourcemaps(),
      terser(),
      typescript({ sourceMap: true, inlineSources: true })
    ]
  }
];

显然,rollup plugin sourcemaps需要发挥必要的魔力,利用TypeScript编译器生成的映射文件,并将它们提供给terser。

彭飞虎
2023-03-14

正如其他人所提到的,TypeScript和Rollup的结合似乎导致了这个问题。在TypeScript中禁用源映射只能解决将Svelte映射到TypeScript的问题。但是,您只会收到一个源映射,该映射在已编译的JavaScript中显示源代码,而不是在原始的TypeScript中。我终于找到了一个对我有效的解决方案:只需在TypeScript选项中添加选项inlineSources:true

typescript({ sourceMap: !production, inlineSources: !production }),

通过简单地不创建重复的SourceMap,而是将源代码从TypeScript复制到SourceMap中,可以避免这个问题。

巩阳秋
2023-03-14

这就是对我有用的:您需要在typecript汇总插件选项中设置source ceMap: false

export default {
  input: 'src/main.ts',
  output: {
    sourcemap: true,
    format: 'iife',
    ...
  },
  plugins: [
    ...
    svelte(...),
    typescript({ sourceMap: false }),
    ...
  ]
}

事实证明,rollup的sourcemap折叠器与typescript的插件sourcemap生成器冲突。这就是为什么它可以在prod构建中工作,但不能在dev构建中工作(因为它最初是sourceMap:!production)。就让罗洛普来抬重物吧。

 类似资料:
  • 本文向大家介绍php生成随机颜色方法汇总,包括了php生成随机颜色方法汇总的使用技巧和注意事项,需要的朋友参考一下 方法一: 随机生成颜色值(例如 FF00FF). color.php 方法二: 方法三: 使用方法如下: <?php echo '<span style="color: #'.randColor().'">随机颜色:#'.randColor().'</span>';?>

  • 我正在尝试rollup js来构建我的typescript项目,但我不知道如何生成定义文件,以及如何将它们自动包含在dist文件中。 有人知道怎么做吗? 这是我的汇总表。配置。js 我使用的是默认的ts配置,但对于declaration=true也是如此。 编辑: 还尝试使用Webpack: Tsconfig: 生成d.ts如下所示: 但是在我使用该包的应用程序中,它找不到生成器... 生成器未定

  • 试图构建一个简单的Vite项目,其中包含tailwindcss,但出现以下错误,有什么想法吗?

  • 我有一个typescript项目,我试着用rollup和@rollup/plugin typescript构建它。除非我导入模块“./src/lib/pages”,否则项目将生成。 复制回购可在此处获得:https://github.com/igorovic/mangoost 问题出现在文件中:。 取消注释中的行 运行 在到处搜索了一整天之后,我没有找到任何可能导致这个错误的线索。

  • 本文向大家介绍Pytorch生成随机数Tensor的方法汇总,包括了Pytorch生成随机数Tensor的方法汇总的使用技巧和注意事项,需要的朋友参考一下 在使用PyTorch做实验时经常会用到生成随机数Tensor的方法,比如: torch.rand() torch.randn() torch.normal() torch.linespace() 均匀分布 torch.rand(*sizes,

  • 至少在GCC中,如果我们提供生成汇编代码的选项,编译器会通过创建一个包含汇编代码的文件来服从。但是,当我们简单地运行命令而没有任何选项时,它不会在内部生成汇编代码吗? 如果是,那么为什么它需要首先生成一个汇编代码,然后将其翻译成机器语言?