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

如何摆脱“@rollup/plugin typescript:rollup'sourcemap'选项必须设置为生成源地图”警告

穆德海
2023-03-14

我每次为生产而构建时都会收到这个警告。当我为生产构建时,我在汇总输出配置中禁用源映射。

output: [{ dir: "...", format: "...", sourcemap: isProd ? false : true }]

我对开发和生产使用相同的tsconfig,tsconfig。json

{
  "compilerOptions": {
    // Output
    "target": "ESNext",
    "module": "ESNEXT",
    "sourceMap": true,
    "jsx": "react",
    "noEmit": true,
    // Compile time code checking
    "strict": true,
    // Libraries
    "lib": ["dom", "esnext"],
    // Imports
    "moduleResolution": "node",
    "allowSyntheticDefaultImports": true,
    "esModuleInterop": true
  },
  "exclude": ["dist", "app"]
}

我明白这是查看汇总插件源代码发出警告的原因:

/**
 * Validate that the `compilerOptions.sourceMap` option matches `outputOptions.sourcemap`.
 * @param context Rollup plugin context used to emit warnings.
 * @param compilerOptions Typescript compiler options.
 * @param outputOptions Rollup output options.
 * @param autoSetSourceMap True if the `compilerOptions.sourceMap` property was set to `true`
 * by the plugin, not the user.
 */
function validateSourceMap(context, compilerOptions, outputOptions, autoSetSourceMap) {
    if (compilerOptions.sourceMap && !outputOptions.sourcemap && !autoSetSourceMap) {
        context.warn(`@rollup/plugin-typescript: Rollup 'sourcemap' option must be set to generate source maps.`);
    }
    else if (!compilerOptions.sourceMap && outputOptions.sourcemap) {
        context.warn(`@rollup/plugin-typescript: Typescript 'sourceMap' compiler option must be set to generate source maps.`);
    }
}

但我不想增加一个用于开发的tsconfig和另一个用于生产的tsconfig的复杂性。

有什么好方法可以消除这个警告?

共有2个答案

奚修伟
2023-03-14

使用基本tsconfig并仅添加与dev和prod版本不同的选项,作为参考,请参阅:

https://github.com/microsoft/TypeScript/issues/9876

https://www.typescriptlang.org/docs/handbook/tsconfig-json.html#configuration-带扩展的继承

红朝
2023-03-14

在我的例子中,我使用的是官方的Svelte初学者模板,带有TypeScript集成。

在我的例子中,我不需要更改由模板扩展的默认tsconfig(它有“sourceMap”:true,);我只需要更改输出。我的汇总中的sourcemap设置。配置。js使其与我传递到typescript()插件的选项一致:

const production = !process.env.ROLLUP_WATCH;

export default {
    input: 'src/main.ts',
    output: {
//      sourcemap: true, // <-- remove
        sourcemap: !production,
        format: 'iife',
        name: 'app',
        file: 'public/build/bundle.js'
    },
    plugins: [
        svelte({
            preprocess: sveltePreprocess({ sourceMap: !production }),
            compilerOptions: {
                dev: !production
            }
        }),
        css({ output: 'bundle.css' }),
        resolve({
            browser: true,
            dedupe: ['svelte']
        }),
        commonjs(),
        typescript({
            sourceMap: !production,
            inlineSources: !production
        }),
        !production && serve(),
        !production && livereload('public'),
        production && terser()
    ],
    watch: {
        clearScreen: false
    }
};

 类似资料:
  • 问题内容: 到目前为止,给我带来了很多麻烦,所以我想摆脱它。尽管spring框架文档清楚地说明了应该做的事情,但实际上 并没有摘要列表。 所以我一直坚持删除并得到错误 -在名称为的中找不到带有请求的映射 对于所有应该由控制器类解决的Url(在这种情况下:)。有什么建议可以让我了解更多信息吗?我非常想知道到底由代表什么标签。 问题答案: 你可以用来自定义定义的每个bean 。现在,javadocs详

  • 问题内容: 到现在为止,给我造成了很多麻烦,所以我想摆脱它。尽管spring框架文档清楚地说明了应该做的事情,但实际上 并没有摘要列表。 所以我坚持删除并现在得到错误 WARN osweb.servlet.PageNotFound-在DispatcherServlet中,名称为’workoutsensor’的URI [/ webapp / trainees]的HTTP请求未找到映射 对于所有应该由

  • 我是一个使用express.js.创建Web应用程序的node.js开发人员,现在我的问题是: 每当我在我的计算机上创建一个应用程序,npm就会安装它的东西并运行它(使用node app.js和nodemon),我会在控制台中收到以下消息: 这个应用很好用。但当我克隆在其他计算机上创建的应用程序时,我没有收到该消息,所以我假设我的计算机中有过时的东西。 我去了消息中提到的站点并证实了我的猜测。这是

  • Highcharts 是通过 JavaScript 对象的形式(JSON)来定义图表的配置参数。 一、图表配置对象 当使用图表构造函数 Highcharts.Chart 来初始化图表时,图表的配置对象是以第二个参数传递给该构造函数的。 下面是示例代码(其中红色部分是配置对象): var options = { chart: { type: 'bar' },

  • 我在pom中添加了spring jpa启动器依赖项,然后将其删除。但spring现在继续对数据源执行自动配置,所以应用程序不会启动。 怎么摆脱这个? 一种解决方案是在应用程序类中具有以下注释: 我想不这样做就实现它。

  • 我有JavaWebService代码在我的eclipse。我使用了@WebService@Webmethod,@XmlElements,@XmlType,@XmlAccessorType 现在我正在使用cxf框架中的java2ws命令生成wsdl。这是命令 我的wsdl文件包含agr0作为我不想要的名称,因为当我将其导入SoapUI时。它正在字段周围添加标记。 下面是带有arg0的wsdl部分 下