我在Visual Studio中有一个现有的ASP.net应用程序。直到最近我才使用JavaScript。现在我想使用Typescript。安装和转换工作很棒。但是,当我想导入模块时,我陷入了困境。
我的想法是使用npm来加载模块,例如我添加到package.json
:
"devDependencies": {
"typestyle": "^1.7.1",
}
我想在我的.ts文件中导入:
import { style } from 'typestyle';
问题:npm下载到不属于我的项目的文件夹node_modules
(但它在我的项目文件夹中); import语句找不到所需的文件。
目前我使用requirejs来启用导入语句,如here所述。我的tsconfig.json
看起来像这样:
{
"compilerOptions": {
"noImplicitAny": true,
"noEmitOnError": true,
"sourceMap": true,
"target": "es5",
"module": "amd",
"moduleResolution": "node"
}
}
我可以手动下载typestyle.js
,将其放在我的项目文件夹中,并配置requirejs配置文件main.js
以便找到它。但后来我没有使用npm。
如何导入我用npm加载的模块?我想使用requirejs。我不想要Angular或React。如果可能的话,我也想避免使我的项目不必要地变得复杂的其他事情(Mocha,node.js,knockout,Webpack,Gulp,Browserify,...)
修改
好的,在阅读NPM vs. Bower vs. Browserify vs. Gulp vs. Grunt vs. Webpack后,我想我确实需要一个像Webpack或Browserify这样的模块捆绑器。但也许在VS2017中集成了一些我可以使用的工具?
EDIT2
在阅读How it feels to learn JavaScript in 2016之后(注意:这是2018年)我明白要求一个简单的解决方案可能太过分了......
答案 0 :(得分:0)
最后,我找到了一个适合我需求的解决方案。由于篇幅很长,我只会发布链接(project source code) http://codingsight.com/using-npm-webpack-and-typescript-to-create-simple-aspnet-core-web-app/
目前唯一的缺点:它使用Webpack而不是requirejs。 Webpack是一个模块打包器。所有.js文件/模块都合并为一个巨大的.js。默认情况下没有延迟加载。