让我们说一个node_modules名为foo 的包,我想在库中导入一个模块,比如foo/module通过webpack和babel ......
import Foo from 'foo'; 作品
import SomeOtherModule from 'foo/module'; 失败的以下内容:
找不到模块:错误:无法解析/ Users/x/Desktop/someproject/js中的模块'foo/module'
这使得看起来像webpack在错误的地方寻找文件而不是 node_modules
我的webpack.config看起来像这样:
var webpack = require('webpack');
var path = require('path');
module.exports = {
entry: ['babel-polyfill','./js/script.js'],
output: {
path: __dirname,
filename: './build/script.js'
},
module: {
loaders: [
{
test: /\.js$/,
loader: 'babel',
query: {
cacheDirectory: true,
presets: ['es2015']
}
}
],
},
plugins: [
new webpack.NoErrorsPlugin()
],
stats: {
colors: true
},
devtool: 'source-map'
};
Run Code Online (Sandbox Code Playgroud) 我有一个由多个文件夹组成的打字稿库。每个文件夹都包含一个 index.ts 文件,该文件导出一些业务逻辑。我正在尝试将其与 rollup 捆绑在一起以在调用站点上实现此行为:
import { Button, ButtonProps } from 'my-lib/button'
import { Input, Textarea } from 'my-lib/input'
import { Row, Column } from 'my-lib/grid'
Run Code Online (Sandbox Code Playgroud)
这是目录结构:
我有一个主要内容index.ts,src/其中包含:
export * from './button';
export * from './input';
export * from './grid';
Run Code Online (Sandbox Code Playgroud)
有了这种风格,我可以做到:
import { Button, Input, InputProps, Row, Column } from 'my-lib'
Run Code Online (Sandbox Code Playgroud)
但我不想要这个。我想通过它们的命名空间访问每个模块。如果我从index.ts文件中删除导出,我所能做的就是:
import { Button } from 'my-lib/dist/button'
Run Code Online (Sandbox Code Playgroud)
这是我以前没有看到的。添加dist/到导入语句意味着我通过相对路径访问模块。我要my-lib/Button。
我正在使用汇总。我尝试使用alias插件但没有用。以下是我的汇总配置:
const customResolver = resolve({
extensions: ['ts'],
});
export …Run Code Online (Sandbox Code Playgroud)