标签: source-maps

tsconfig.json 中的 --inlineSourceMap 或 --sourceMap

当我在 webpack 中使用 Cheap-module-eval-source-map 作为 devtool 时,我必须在 tsconfig.json 中打开 --inlineSourceMap 而不是 --sourceMap 吗?

source-maps typescript webpack

3
推荐指数
1
解决办法
1万
查看次数

如何在编译器中实现源映射?

我正在 Haskell 中实现一个编译器,将源语言编译为目标语言(类似汇编)。

出于调试目的,需要源映射将目标语言汇编指令映射到其相应的源位置(行和列)。

我已经广泛搜索了编译器实现,但没有一个包含源映射。

谁能指出我如何生成源地图的正确方向?

代码示例、书籍等。Haskell 优先,其他语言也欢迎。

compiler-construction haskell source-maps

3
推荐指数
1
解决办法
404
查看次数

VSCode 中 NPM Google Cloud 包的源映射问题

我有一个大型 Node.js 应用程序。它管理 HTTP REST 请求。它是用打字稿写的。我能够毫无问题地编译和运行该应用程序。在 VSCode 中,我有一个预启动任务,它基本上编译代码。

当我想调试应用程序或尝试使用 vscode 在其中添加断点时,它会给出类似的错误消息,如下所示:

Could not read source map for file:///Users/user/Developer/yoauto/engine/node_modules/@google-cloud/paginator/build/src/resource-stream.js: ENOENT: no such file or directory, open '/Users/user/Developer/yoauto/engine/node_modules/@google-cloud/paginator/build/src/resource-stream.js.map'
Run Code Online (Sandbox Code Playgroud)

请在下面找到我的 tsconfig.json 和 launch.json:

{
  "compilerOptions": {
    "outDir": "dist/",
    "allowSyntheticDefaultImports": true,
    "esModuleInterop": true,
    "strictBindCallApply": true,
    "allowJs": false,
    "checkJs": false,
    "declaration": false,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "forceConsistentCasingInFileNames": true,
    "importHelpers": true,
    "noEmitHelpers": true,
    "lib": ["dom", "es2016", "es2017.object"],
    "target": "es6",
    "module": "commonjs",
    "noUnusedLocals": false,
    "noUnusedParameters": false,
    "noEmitOnError": true,
    "noFallthroughCasesInSwitch": true,
    "noImplicitAny": false,
    "noImplicitReturns": false,
    "noImplicitThis": false,
    "strictNullChecks": …
Run Code Online (Sandbox Code Playgroud)

debugging source-maps visual-studio-code

3
推荐指数
1
解决办法
1933
查看次数

发生未处理的异常:请求的模块“sourcemap-codec”不提供名为“decode”的导出

在升级到角度 13 时,我在管道上的构建步骤失败。我的初始版本是 11,升级到 12 后构建工作正常,但从 12 升级到 13 时,它开始在管道上出现此错误。构建在本地运行良好,但在管道上失败。

我还添加了 package.json 文件代码和依赖项,还添加了显示错误的图像。

[![{
  "name": "app",
  "version": "0.0.0",
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "start:prod": "ng serve -c production",
    "start:local": "ng serve -c local",
    "start:test": "ng serve -c local,test",
    "start:ci": "serve -s --no-clipboard --listen ${PORT:-4200} ",
    "build": "ng build",
    "updateVersion": "node ./updateVersion.js",
    "test": "jest",
    "test:watch": "jest --watch",
    "test:coverage": "jest --coverage --ci",
    "lint": "eslint src --ext .js,.ts,.html",
    "lint:fix": "npm run lint -- --fix",
    "e2e": "ng e2e",
    "e2e:prod": "ng e2e --headless …
Run Code Online (Sandbox Code Playgroud)

source-maps angular-upgrade angular angular13

3
推荐指数
1
解决办法
4355
查看次数

源地图安全性

在逐步使用缩小的库代码时,源映射非常有用.使用源映射的.js文件的前几行默认情况下看起来像这样:

/*! jQuery v1.10.2 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license
//@ sourceMappingURL=jquery.min.map
*/
Run Code Online (Sandbox Code Playgroud)

如果您没有jquery.min.map在同一目录中,支持源映射的浏览器将产生冗余的http请求,从而导致404错误(听起来很熟悉,有人喜欢?).

我注意到sourceMappingURL可能指向另一个域; 我不是在提倡这种做法,但它似乎不受CORS的影响:

/*! jQuery v1.10.2 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license
//@ sourceMappingURL=//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.map
*/
Run Code Online (Sandbox Code Playgroud)

映射的未经授权的来源是否安全?即如果在上面的示例中,映射的服务器被泄露并且恶意代码被添加到源中,是否会/将被执行?如果您正在调试代码并单步调试代码呢?我找不到任何能够解决这个问题的实现细节.

javascript security google-chrome source-maps

2
推荐指数
1
解决办法
793
查看次数

如何链接Gulp:使用源映射链接到Babel到Webpack?

我正在尝试创建一个转换的gulp任务

TS -> (ES6) -> Babel -> (ES5) -> Webpack -> [bundle.js, bundle.js.map]

源映射映射回原始TS代码的位置.

如何用gulp做到这一点?

到目前为止,我已经设法让它发挥作用 TS -> ES6 -> Babel -> ES5

// Build
gulp.task("build", ["clean"], () => {

    const tsProject = ts.createProject("tsconfig.json", {});
    const sourceMapOptions = {
        sourceRoot: __dirname+"/src"
    };

    return tsProject.src()
    .pipe(sourcemaps.init())

        // Typescript
        .pipe(tsProject())
        .js

        // Babel
        .pipe(babel({
            presets: ["es2015"],
            plugins: ["transform-runtime"]
        }))

        // Webpack <-- ????
        .pipe(webpack({})) // <-- ????

    .pipe(sourcemaps.write(".", sourceMapOptions))
    .pipe(gulp.dest("./dist"));

});
Run Code Online (Sandbox Code Playgroud)

但不知道如何添加webpack到混合.

source-maps gulp webpack gulp-typescript gulp-babel

2
推荐指数
1
解决办法
849
查看次数

Webpack 2 ExtractTextPlugin CSS源图覆盖babel 6 JS源图

编辑:发布此问题后不久找到了解决方案.请参阅下面的我的答案


我有一个基于webpack 2的项目,它使用ExtractTextPlugin将SCSS/CSS拉出到一个单独的文件中.

另外,我在webpack(vendorapp)中定义了两个入口点,它们构建到我的JS包中.

出于某种原因,ExtractTextPlugin似乎打破了为应用程序包生成的源图app.js.map.如果我查看源图,它指向提取的CSS文件中的随机行,而不是JS.

查看源图文件本身,我只看到"sources"下面列出的CSS和SCSS文件(下面的简短示例):

{"version":3,"sources":["webpack:///webpack:///~/icon-font/package/styles/ficon.css","webpack:///webpack:///~/styles/package/styles/_imports.scss","webpack:///webpack:///~/styles/package/styles/includes/_variables.scss","webpack:///webpack:///~/styles/package/styles/includes/_mixins-utilities.scss", .....
Run Code Online (Sandbox Code Playgroud)

但是,如果我ExtractTextPlugin在webpack配置中注释掉,我会在源代码中列出JS文件:

{"version":3,"sources":["webpack:///app-552b3935c142f5001484.js","webpack:///./src/lib/Globals.js","webpack:///./src/actions/AdActions.js", ....
Run Code Online (Sandbox Code Playgroud)

所以不确定这里发生了什么......看起来有点像ExtractTextPlugin破坏或覆盖应用程序包的源图?

以下是我在webpack配置中定义的所有相关插件的方法:

{
  entry: {
    vendors: [
      'react',
      'react-dom',
      'react-redux',
    ],
    app: path.resolve(__dirname, './../src/client.js'),
  },
  output: {
    path: path.resolve(__dirname, './../dist/assets/'),
    filename: '[name]-[chunkhash].js',
    sourceMapFilename: '[name]-[chunkhash].js.map',
  },
  cache: false,
  devtool: 'source-map',
  module: {
    rules: [
      {
        test: /\.(scss|sass|css)$/,
        loader: ExtractTextPlugin.extract({
          loader: [
            'css?sourceMap',
            'postcss-loader',
            'sass?sourceMap'
          ],
        }),
      },
      {
        test: /\.js$/,
        loader: 'babel-loader',
        include: [path.join(__dirname, '../src')], …
Run Code Online (Sandbox Code Playgroud)

uglifyjs source-maps webpack webpack-2 extract-text-plugin

2
推荐指数
1
解决办法
1256
查看次数

在公开JavaScript源地图时是否存在合法的安全问题?

我正在使用错误跟踪软件报告网络浏览器中发生的任何错误,但是我的生产站点上的代码已缩小。结果,调试几乎是不可能的(变量名被更改等)。

我想在生产中放入完整的源映射文件,以便我可以调试这些错误,但是在执行此操作时听说过一些有关隐私/安全性的问题。由于可以在没有源映射的情况下最小化JavaScript和进行反向工程,因此我想知道这是否是合理的问题。我所能看到的是,它只会使该过程更快。

将源映射放入公共域是否存在合法的安全问题?

javascript browser security privacy source-maps

2
推荐指数
1
解决办法
395
查看次数

调试器断点行不正确。Webpack 配置打字稿

我终于让打字稿在我的项目中工作了,但是断点不会停在正确的行上,并且变量值不可用,直到您在逐步执行中进入更多行代码。如果源映射中不匹配,则似乎存在某些 ttype。我尝试按照此处的说明将 SourceMapDevToolPlugin 添加到 webpack 配置文件中来解决此问题。但并不能解决问题。

下面的截图说明了我的意思:

在此输入图像描述

myString 未定义,尽管该行应该已被执行。

在此输入图像描述

之后它直接跳转到函数(而不是const myNumber = myFunc(5);调用函数的地方)并且字符串的值可用,所以这很奇怪。

下面是我的 webpack 配置、launch.json 和 tsconfig。

网络包配置:

const webpack = require('webpack');
const path = require('path');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
const HtmlWebpackPlugin = require('html-webpack-plugin');
// const SourceMapDevToolPlugin = require('');

const modulesPath = path.resolve(__dirname, 'node_modules');
const srcPath = path.resolve(__dirname, 'src');
const outputPath = path.resolve(__dirname, 'dist');

const basename = process.env.BASENAME || '/';
const mode = process.env.NODE_ENV === 'production' ? 'production' : 'development';

module.exports = {
  mode,
  devtool: …
Run Code Online (Sandbox Code Playgroud)

source-maps typescript webpack visual-studio-code

2
推荐指数
1
解决办法
2547
查看次数

用于连锁CSS文件的Source Maps/Grunt插件

我使用grunt简单地连接和缩小我的CSS文件(不使用SASS).有没有像我可以使用的源地图?我想查看生产网站并使用Chrome Dev工具进行检查,但请告诉我原始的CSS文件.这是我的咕噜文件:

'use strict';

module.exports = function (grunt) {
    grunt.initConfig({
        pkg: grunt.file.readJSON('package.json'),
        clean: {
            removeModuleCss: {
                src:["App/**/module.css"]
            }
        },
        cssmin: {
            module: {
                files: {
                    'App/styles/module.css': ['App/**/*.css']
                }
            }
        },
        concat: {
            module: {
                src: 'App/styles/**/*.css',
                dest: 'App/styles/module.css'
            }
        }
    });

    grunt.loadNpmTasks('grunt-contrib-concat');
    grunt.loadNpmTasks('grunt-contrib-cssmin');
    grunt.loadNpmTasks('grunt-contrib-clean');

    grunt.registerTask('css', ['clean', 'concat']);
    grunt.registerTask('cssmin', ['clean', 'cssmin']);
};
Run Code Online (Sandbox Code Playgroud)

javascript google-chrome-devtools gruntjs source-maps

1
推荐指数
1
解决办法
1550
查看次数