无法在TypeScript中使用npm模块

时间:2017-11-18 14:25:28

标签: typescript

我是从Babel来到Typescript而我正在努力从node_modules导入一个模块。生成的.js版本不包含我导入的模块中的代码...在这种情况下browser-cookies

我使用纱线安装了包裹:yarn add browser-cookies。然后我尝试导入main.ts,如下所示:

const cookies = require('browser-cookies');

(function() {
  document.forms['number-generator'].addEventListener('submit', (ev) => {
    ev.preventDefault();

    if(!cookies.get('ab')) {
      cookies.set('ab', 'true', { expires: 1 });
    }
  })
})();

我的package.json文件位于以下位置:

{
  "name": "lucky-lotto-lander",
  "version": "1.0.0",
  "main": "index.js",
  "license": "MIT",
  "scripts": {
    "build": "tsc src/app.ts --outFile dist/app.js --module amd --watch"
  },
  "dependencies": {
    "@types/node": "^8.0.53",
    "browser-cookies": "^1.1.0",
    "copyfiles": "^1.2.0"
  }
}

生成的main.js版本如下所示:

var cookies = require('browser-cookies');
(function () {
    document.forms['number-generator'].addEventListener('submit', function (ev) {
        ev.preventDefault();
        if (!cookies.get('ab')) {
            cookies.set('ab', 'true', { expires: 1 });
        }
    });
})();

如何将必要的browser-cookies代码捆绑到构建中?

1 个答案:

答案 0 :(得分:3)

单独使用TypeScript不进行捆绑(将其与Babel进行比较,后者也只是转换,而不是捆绑)。

你需要像Webpack这样的模块捆绑器将它们整合到一个捆绑包中。