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

使用typescript 2路径别名汇总Angular 2

狄峻熙
2023-03-14

我正在尝试汇总Angular 2应用程序,但我有:

无法解析“app/components/xxx/xxxxx”。来自xxxx\wwwroot\angular\app\app的组件。单元js

应用程序。模块引用了xxxxx。组件如下所示:

import { xxxxx } from 'app/components/xxx/xxxxx.component'

所以tsconfig.js有:

"compilerOptions": {
  ...
  "paths": {
    "app/*": [ "./app/*" ],
    ...
  },
  "outDir": "wwwroot", 
  ...
},

如何在汇总中解析像typescript这样的路径别名?

我试着用

1) https://github.com/frostney/rollup-plugin-alias

汇总配置。js:

export default {
  entry: 'wwwroot/angular/app/main-aot.js',
  dest: 'wwwroot/dist/build.js',
  sourceMap: false,
  format: 'iife',
  plugins: [
      nodeResolve({jsnext: true, module: true}),
      commonjs({
        include: 'node_modules/rxjs/**',
      }),
      alias({
            'app': '.' // asuming "wwwroot/angular/app/" is the working dir
      }),
      uglify()
  ]
}

2) https://github.com/dot-build/rollup-plugin-includepaths

汇总配置。js:

let includePathOptions = {
    include: {},
    paths: ['../'], // asuming "wwwroot/angular/app/" is the working dir
    external: [],
    extensions: ['.js']
};

export default {
  entry: 'wwwroot/angular/app/main-aot.js',
  dest: 'wwwroot/dist/build.js',
  sourceMap: false,
  format: 'iife',
  plugins: [
      nodeResolve({jsnext: true, module: true}),
      commonjs({
        include: 'node_modules/rxjs/**',
      }),
      includePaths(includePathOptions),
      uglify()
  ]
}

但这些都不管用。知道吗?提前感谢!!!

共有2个答案

岑经纶
2023-03-14

你试过使用typescript插件进行汇总吗?

https://github.com/rollup/rollup-plugin-typescript

使用npm安装进行安装——保存开发汇总插件类型脚本

在汇总配置中导入。js从“汇总插件类型脚本”导入类型脚本

并确保将其添加到插件部分,例如

插件:[typescript()]

根据您的项目设置,您可能需要更改依赖项以使用本地打字稿安装,例如

    plugins: [
    typescript({
            typescript: require('typescript')
        })
]

汪甫
2023-03-14

我在ASP中使用Angular 4。NET MVC环境,在myTconfig中使用“路径”时遇到了相同的问题。json文件。

我还尝试使用rollup-plugin-aliasrollup-plugin-pathrollup-plugin-typecript。这些都不起作用。但是,我发现rollup-plugin-import-alias对我有用。

我的AOTtsconfig.json文件:

{
    "compilerOptions": {
        // ...
        "baseUrl": "./",
        "paths": {
            "myCommon/*": ["./tmp/myCommonFolder/*"]
        }
        // ...
    }
}

我的汇总配置。js文件:

import nodeResolve      from 'rollup-plugin-node-resolve';
import commonjs         from 'rollup-plugin-commonjs';
import importAlias      from 'rollup-plugin-import-alias';

export default {
    // ...
    plugins: [
        nodeResolve({jsnext: true, module: true})
        , commonjs({
            include: 'node_modules/rxjs/**'
        })
        , importAlias({
            Paths: {
                // `__dirname` is built into rollup and was needed for me to get the right path
                myCommon: __dirname + '/tmp/myCommonFolder'
            }
            , Extentions: ['js']
        })
    ]
    // ...
};

旁注:使用JIT时,公共文件的路径可以位于根目录之外的其他文件夹结构中。。。

"paths": {
    "myCommon/*": ["./../../../Scripts/myCommonFolder/*"]
}

然而,AOT和Rollup似乎无法超出应用程序根目录。因此,在执行AOT和汇总构建过程的gulp任务中,我将所有内容复制到应用程序根目录下的临时文件夹中。

gulp.task('tmp:copy', function () {
    gulp.src(['Scripts/myCommonFolder/**'])
    .pipe(gulp.dest('Areas/Services/Scripts/MyAppRoot/tmp/myCommonFolder'));
});

 类似资料:
  • 定义统一路径别名 module-alias 文档:https://www.npmjs.com/package/module-alias 在 egg.js 中使用 安装:npm install module-alias --save 使用:package.json 中添加 "_moduleAliases": { "@root": ".", "@app": "app" }, app.js

  • 协程短名称 简化协程相关API的名称书写。可修改php.ini设置swoole.use_shortname=On/Off来开启/关闭短名,默认为开启。 所有的 Swoole\Coroutine 前缀的类名映射为Co。此外还有下面的一些映射: 创建协程 //Swoole\Coroutine::create等价于go函数 go(function () { co::sleep(0.5);

  • 错误:[vite]:Rollup无法解析从“src/routes/random.svelte”导入“@/sample.js”。这很可能是无意的,因为它可能会在运行时破坏应用程序。如果您确实想将此模块显式外部化,请将其添加到 Vite配置:

  • 我有一个问题与汇总和汇总插件节点解决。 如果我有这种类型的进口: 它被转换为: 当我尝试在使用Webpack的项目中使用它时,这会破坏捆绑包,因为文件夹显然不是我的Rollup-bundled包的文件夹的子文件夹(因为npm平坦了依赖项)。 我已经将所有的定义为。 这是我的相关配置: 如何使构建保持节点模块导入保持绝对路径?我想在写的时候保存它们,这样节点。js/webpack/wathever可

  • 如果涉及到一个JavaScript变量,这个变量在文档中的其他地方,你必须提供一个唯一标识符映射到该变量。名称路径提供了一种这样做的方法,并且消除实例成员,静态成员和内部变量之间的歧义。 JSDoc 3 中名称路径的基本语法示例: myFunction MyConstructor MyConstructor#instanceMember MyConstructor.staticMember MyC

  • 本文向大家介绍C#路径,文件,目录及IO常见操作汇总,包括了C#路径,文件,目录及IO常见操作汇总的使用技巧和注意事项,需要的朋友参考一下 本文实例汇总了C#路径,文件,目录及IO常见操作。分享给大家供大家参考。具体如下: 问题1:如何判定一个给定的路径是否有效/合法; 通过Path.GetInvalidPathChars或Path.GetInvalidFileNameChars方法获得非法的路径