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

使用webpack 2和typecript的global

萧献
2023-03-14

我试图在一个TypeScript项目中使用带有Webpack2的Globalize库。typescript/Webpack 2安装程序已经运行,但是,在导入和访问Globalize时,我在运行Webpack时收到以下错误消息:

ERROR in ./.tmp-globalize-webpack/C--Projects-webpack2-testing-app-index.ts
(1,1): error TS2304: Cannot find name 'module'.

ERROR in ./app/index.ts
(2,23): error TS7016: Could not find a declaration file for module 'globalize'. 'C:\Projects\webpack2-testing\node_modules\globalize\dist\node-main.js' implicitly has an 'any' type.

因此,我尝试安装的global类型:

npm install --save-dev @types/globalize

现在我得到以下错误:

ERROR in ./.tmp-globalize-webpack/C--Projects-webpack2-testing-app-index.ts
(1,1): error TS2304: Cannot find name 'module'.

ERROR in ./app/index.ts
(2,23): error TS2306: File 'C:/Projects/webpack2-testing/node_modules/@types/globalize/index.d.ts' is not a module.

不出所料,这对我来说都是非常新的。不知道我是否应该检查网络包、打字、全球化或打字稿...

这是我的包裹。json:

{
"name": "webpack2-testing",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "build": "webpack --config webpack-config.js"
  },
  "devDependencies": {
    "cldr-data": "^30.0.4",
    "globalize": "^1.2.2",
    "globalize-webpack-plugin": "^0.3.10",
    "html-webpack-plugin": "^2.28.0",
    "ts-loader": "^2.0.0",
    "typescript": "^2.1.6",
    "webpack": "^2.2.1"
  }
}

和索引。ts:

import Globalize from "globalize";

function component () {
  let element = document.createElement('div');

  let currencyFormatter = Globalize.currencyFormatter( "USD" );
  element.innerHTML = currencyFormatter( 69900 );
  return element;
}

document.body.appendChild(component());

完整的项目文件(包括网页包配置)可在此github存储库中获得。

注意:这个问题是在试图解决我之前提出的一个问题时出现的。如果这样做有效,也可以解决我之前的问题。

共有2个答案

谭志用
2023-03-14

为了使用globalize,我执行了以下步骤。typescript项目中的js。

1.安装

npm install globalize
npm install @types/globalize

2.创建要导出模块的文件(globalize.d.ts)

/// <reference types='globalize' />

/* tslint:disable */

declare namespace globalize { }
declare module 'globalize' {
    export default Globalize;
}

3.在我的主文件中使用

import globalize from 'globalize';

// Formatter creation.
var formatter = globalize.numberFormatter();

// Formatter execution (roughly 10x faster than above).
formatter( Math.PI );

但是,我从未成功下载cldr库,因此我的浏览器出现以下错误:

./src/client/index.tsx
(5,23): error TS2306: File '/Users/alen/Workspace/Qunhe/core/node_modules/@types/globalize/index.d.ts' is not a module.
./~/globalize/dist/globalize.js
Module not found: Error: Cannot resolve module 'cldr' in /Users/alen/Workspace/Qunhe/core/node_modules/globalize/dist
@ ./~/globalize/dist/globalize.js 22:2-25:14
./~/globalize/dist/globalize.js

我不确定是全球化。js问题或cldr。js问题,仍在尝试。对不起,我没有解决你的问题,只是提前回复了。

编辑:

为了解决上述错误,我使用webpack插件来帮助我打包数据,并安装cldr数据。它确实奏效了。

  1. 添加globize-webpack插件https://github.com/rxaviers/globalize-webpack-plugin

并在网页包中使用。配置。js作为演示在这里演示。https://github.com/globalizejs/globalize/tree/master/examples/app-npm-webpack

我必须使用

npm install globalize cldr-data

回到浏览器,每件事都运行良好。

曾明诚
2023-03-14

我终于成功了:

>

 declare module 'globalize' {
     export = Globalize;
 }

在您的网页包配置中:

plugins: [
    new webpack.ProvidePlugin({
        Globalize: "globalize"
    })
]

最后,当您在所有. ts文件中导入global时:

import * as Globalize from 'globalize';
 类似资料:
  • 本文向大家介绍详解用webpack2搭建angular2的项目,包括了详解用webpack2搭建angular2的项目的使用技巧和注意事项,需要的朋友参考一下 webpack2和angular2搭建的项目 github地址:项目链接 npm install,安装依赖包 npm run dev,启动本地工程,在localhost:1699进行预览 webpack配置文件开发版: 搭建中遇到的问题:

  • 之所以写这个教程,是因为之前自己自学webpack的时候,遇到了很多阻碍,首先是官网全英,api对我来说写得也模模糊糊的,当然官方文档很详细,但对于初学者来说学习成本就比较高了。 在google搜索出来的一大堆所谓的webpack教程要么就是直接丢给你一份作者已经配置好的配置文件,要么就是单独跟你讲某个配置参数的作用(感觉就是把官网的英文纯粹翻译成中文而已),这样子还不如去仔细啃官网,毕竟翻译成中

  • 这在我在处理项目时创建了一个新文件后突然发生。几乎所有字符都是简单的白色文本(括号除外,因为我启用了括号对着色) 我已经尝试了重置我的配置,检查了我的配置(包括全局配置和工作区配置),尝试了这个提供可选语法高亮显示的扩展(这很有效,但我更喜欢使用VS Code 1)。

  • 我最近学了打字,因为它看起来很有趣。我以前在C中使用过泛型,并在Typescript中成功地完成了一些泛型操作,但现在我对以下用例感到困惑: 我有一个通用函数,可以接受任意数量的Rest参数。然后将这些参数传递给回调函数,该函数也提供了。但我似乎不知道如何使typescript编译器接受我提供的类型,以隐式传递到回调函数中。 以此作为示例用法: 此示例导致参数认为它们隐式类型为“any”。 我的问

  • 我用< code> - template typescript创建了一个新的React本地项目 我删除了目录,它是样板文件的一部分。 然后我继续添加ESLint: 但是,当我打开< code>babel.config.js时,我得到了这个错误 解析错误:“parserOptions.project”已为@typecript-eslint/parser设置。 文件与您的项目配置不匹配:< code

  • 本文向大家介绍详解基于webpack2.x的vue2.x的多页面站点,包括了详解基于webpack2.x的vue2.x的多页面站点的使用技巧和注意事项,需要的朋友参考一下 本文介绍了基于webpack2.x的vue2.x的多页面站点,分享给大家,具体如下: vue的多页面 依旧使用vue-cli来初始化我们的项目 然后修改主要目录结构如下: 编写每个页面 可以看到这里我们有4个单独的页面,分别是b